aboutsummaryrefslogtreecommitdiffstats
path: root/vncviewer/fltk
diff options
context:
space:
mode:
Diffstat (limited to 'vncviewer/fltk')
-rw-r--r--vncviewer/fltk/layout.h82
-rw-r--r--vncviewer/fltk/util.h110
2 files changed, 110 insertions, 82 deletions
diff --git a/vncviewer/fltk/layout.h b/vncviewer/fltk/layout.h
index 8153f9b1..ae716e1a 100644
--- a/vncviewer/fltk/layout.h
+++ b/vncviewer/fltk/layout.h
@@ -25,7 +25,6 @@
#define __FLTK_LAYOUT_H__
#include <FL/fl_draw.H>
-#include <FL/Fl_Menu_.H>
/* Calculates the width of a string as printed by FLTK (pixels) */
static inline int gui_str_len(const char *str)
@@ -39,87 +38,6 @@ static inline int gui_str_len(const char *str)
return (int)(len + 0.5f);
}
-/* Escapes all @ in text as those have special meaning in labels */
-static inline size_t fltk_escape(const char *in, char *out, size_t maxlen)
-{
- size_t len;
-
- len = 0;
-
- while (*in != '\0') {
- if (*in == '@') {
- if (maxlen >= 3) {
- *out++ = '@';
- *out++ = '@';
- maxlen -= 2;
- }
-
- len += 2;
- } else {
- if (maxlen >= 2) {
- *out++ = *in;
- maxlen--;
- }
-
- len += 1;
- }
-
- in++;
- }
-
- if (maxlen)
- *out = '\0';
-
- return len;
-}
-
-/* Filter out unsafe characters for menu entries */
-static inline size_t fltk_menu_escape(const char *in, char *out, size_t maxlen)
-{
- size_t len;
-
- len = 0;
-
- while (*in != '\0') {
- if (*in == '/') {
- if (maxlen >= 3) {
- *out++ = '\\';
- *out++ = '/';
- maxlen -= 2;
- }
-
- len += 2;
- } else {
- if (maxlen >= 2) {
- *out++ = *in;
- maxlen--;
- }
-
- len += 1;
- }
-
- in++;
- }
-
- if (maxlen)
- *out = '\0';
-
- return len;
-}
-
-/* Helper to add menu entries safely */
-static inline void fltk_menu_add(Fl_Menu_ *menu, const char *text,
- int shortcut, Fl_Callback *cb,
- void *data = 0, int flags = 0)
-{
- char buffer[1024];
-
- if (fltk_menu_escape(text, buffer, sizeof(buffer)) >= sizeof(buffer))
- return;
-
- menu->add(buffer, shortcut, cb, data, flags);
-}
-
/**** MARGINS ****/
#define OUTER_MARGIN 10
diff --git a/vncviewer/fltk/util.h b/vncviewer/fltk/util.h
new file mode 100644
index 00000000..87765396
--- /dev/null
+++ b/vncviewer/fltk/util.h
@@ -0,0 +1,110 @@
+/* Copyright 2011 Pierre Ossman <ossman@cendio.se> for Cendio AB
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#ifndef __FLTK_UTIL_H__
+#define __FLTK_UTIL_H__
+
+#include <FL/Fl_Menu_.H>
+
+/* Escapes all @ in text as those have special meaning in labels */
+static inline size_t fltk_escape(const char *in, char *out, size_t maxlen)
+{
+ size_t len;
+
+ len = 0;
+
+ while (*in != '\0') {
+ if (*in == '@') {
+ if (maxlen >= 3) {
+ *out++ = '@';
+ *out++ = '@';
+ maxlen -= 2;
+ }
+
+ len += 2;
+ } else {
+ if (maxlen >= 2) {
+ *out++ = *in;
+ maxlen--;
+ }
+
+ len += 1;
+ }
+
+ in++;
+ }
+
+ if (maxlen)
+ *out = '\0';
+
+ return len;
+}
+
+/* Filter out unsafe characters for menu entries */
+static inline size_t fltk_menu_escape(const char *in, char *out, size_t maxlen)
+{
+ size_t len;
+
+ len = 0;
+
+ while (*in != '\0') {
+ if (*in == '/') {
+ if (maxlen >= 3) {
+ *out++ = '\\';
+ *out++ = '/';
+ maxlen -= 2;
+ }
+
+ len += 2;
+ } else {
+ if (maxlen >= 2) {
+ *out++ = *in;
+ maxlen--;
+ }
+
+ len += 1;
+ }
+
+ in++;
+ }
+
+ if (maxlen)
+ *out = '\0';
+
+ return len;
+}
+
+/* Helper to add menu entries safely */
+static inline void fltk_menu_add(Fl_Menu_ *menu, const char *text,
+ int shortcut, Fl_Callback *cb,
+ void *data = 0, int flags = 0)
+{
+ char buffer[1024];
+
+ if (fltk_menu_escape(text, buffer, sizeof(buffer)) >= sizeof(buffer))
+ return;
+
+ menu->add(buffer, shortcut, cb, data, flags);
+}
+
+#endif