diff options
Diffstat (limited to 'src/ui/util.c')
-rw-r--r-- | src/ui/util.c | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/src/ui/util.c b/src/ui/util.c index 44f7e089..ceab01b8 100644 --- a/src/ui/util.c +++ b/src/ui/util.c | |||
@@ -29,6 +29,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ | |||
29 | #include "gmutil.h" | 29 | #include "gmutil.h" |
30 | #include "labelwidget.h" | 30 | #include "labelwidget.h" |
31 | #include "inputwidget.h" | 31 | #include "inputwidget.h" |
32 | #include "bindingswidget.h" | ||
32 | #include "keys.h" | 33 | #include "keys.h" |
33 | #include "widget.h" | 34 | #include "widget.h" |
34 | #include "text.h" | 35 | #include "text.h" |
@@ -105,6 +106,11 @@ void toString_Sym(int key, int kmods, iString *str) { | |||
105 | } | 106 | } |
106 | } | 107 | } |
107 | 108 | ||
109 | iBool isMod_Sym(int key) { | ||
110 | return key == SDLK_LALT || key == SDLK_RALT || key == SDLK_LCTRL || key == SDLK_RCTRL || | ||
111 | key == SDLK_LGUI || key == SDLK_RGUI || key == SDLK_LSHIFT || key == SDLK_RSHIFT; | ||
112 | } | ||
113 | |||
108 | int keyMods_Sym(int kmods) { | 114 | int keyMods_Sym(int kmods) { |
109 | kmods &= (KMOD_SHIFT | KMOD_ALT | KMOD_CTRL | KMOD_GUI); | 115 | kmods &= (KMOD_SHIFT | KMOD_ALT | KMOD_CTRL | KMOD_GUI); |
110 | /* Don't treat left/right modifiers differently. */ | 116 | /* Don't treat left/right modifiers differently. */ |
@@ -920,12 +926,22 @@ iWidget *makeToggle_Widget(const char *id) { | |||
920 | return toggle; | 926 | return toggle; |
921 | } | 927 | } |
922 | 928 | ||
929 | static void appendFramelessTabPage_(iWidget *tabs, iWidget *page, const char *title, int shortcut, | ||
930 | int kmods) { | ||
931 | appendTabPage_Widget(tabs, page, title, shortcut, kmods); | ||
932 | setFlags_Widget( | ||
933 | (iWidget *) back_ObjectList(children_Widget(findChild_Widget(tabs, "tabs.buttons"))), | ||
934 | frameless_WidgetFlag, | ||
935 | iTrue); | ||
936 | } | ||
937 | |||
923 | static iWidget *appendTwoColumnPage_(iWidget *tabs, const char *title, int shortcut, iWidget **headings, | 938 | static iWidget *appendTwoColumnPage_(iWidget *tabs, const char *title, int shortcut, iWidget **headings, |
924 | iWidget **values) { | 939 | iWidget **values) { |
925 | iWidget *page = new_Widget(); | 940 | iWidget *page = new_Widget(); |
926 | setFlags_Widget(page, arrangeVertical_WidgetFlag | arrangeSize_WidgetFlag | | 941 | setFlags_Widget(page, arrangeVertical_WidgetFlag | arrangeSize_WidgetFlag | |
927 | resizeHeightOfChildren_WidgetFlag | borderTop_WidgetFlag, iTrue); | 942 | resizeHeightOfChildren_WidgetFlag | borderTop_WidgetFlag, iTrue); |
928 | addChildFlags_Widget(page, iClob(new_Widget()), expand_WidgetFlag); | 943 | addChildFlags_Widget(page, iClob(new_Widget()), expand_WidgetFlag); |
944 | setPadding_Widget(page, 0, gap_UI, 0, gap_UI); | ||
929 | iWidget *columns = new_Widget(); | 945 | iWidget *columns = new_Widget(); |
930 | addChildFlags_Widget(page, iClob(columns), arrangeHorizontal_WidgetFlag | arrangeSize_WidgetFlag); | 946 | addChildFlags_Widget(page, iClob(columns), arrangeHorizontal_WidgetFlag | arrangeSize_WidgetFlag); |
931 | *headings = addChildFlags_Widget( | 947 | *headings = addChildFlags_Widget( |
@@ -933,11 +949,7 @@ static iWidget *appendTwoColumnPage_(iWidget *tabs, const char *title, int short | |||
933 | *values = addChildFlags_Widget( | 949 | *values = addChildFlags_Widget( |
934 | columns, iClob(new_Widget()), arrangeVertical_WidgetFlag | arrangeSize_WidgetFlag); | 950 | columns, iClob(new_Widget()), arrangeVertical_WidgetFlag | arrangeSize_WidgetFlag); |
935 | addChildFlags_Widget(page, iClob(new_Widget()), expand_WidgetFlag); | 951 | addChildFlags_Widget(page, iClob(new_Widget()), expand_WidgetFlag); |
936 | appendTabPage_Widget(tabs, page, title, shortcut, shortcut ? KMOD_PRIMARY : 0); | 952 | appendFramelessTabPage_(tabs, page, title, shortcut, shortcut ? KMOD_PRIMARY : 0); |
937 | setFlags_Widget( | ||
938 | (iWidget *) back_ObjectList(children_Widget(findChild_Widget(tabs, "tabs.buttons"))), | ||
939 | frameless_WidgetFlag, | ||
940 | iTrue); | ||
941 | return page; | 953 | return page; |
942 | } | 954 | } |
943 | 955 | ||
@@ -1080,6 +1092,11 @@ iWidget *makePreferences_Widget(void) { | |||
1080 | addChild_Widget(headings, iClob(makeHeading_Widget("HTTP proxy:"))); | 1092 | addChild_Widget(headings, iClob(makeHeading_Widget("HTTP proxy:"))); |
1081 | setId_Widget(addChild_Widget(values, iClob(new_InputWidget(0))), "prefs.proxy.http"); | 1093 | setId_Widget(addChild_Widget(values, iClob(new_InputWidget(0))), "prefs.proxy.http"); |
1082 | } | 1094 | } |
1095 | /* Keybindings. */ { | ||
1096 | iBindingsWidget *bind = new_BindingsWidget(); | ||
1097 | setFlags_Widget(as_Widget(bind), borderTop_WidgetFlag, iTrue); | ||
1098 | appendFramelessTabPage_(tabs, iClob(bind), "Bindings", '5', KMOD_PRIMARY); | ||
1099 | } | ||
1083 | resizeToLargestPage_Widget(tabs); | 1100 | resizeToLargestPage_Widget(tabs); |
1084 | arrange_Widget(dlg); | 1101 | arrange_Widget(dlg); |
1085 | /* Set input field sizes. */ { | 1102 | /* Set input field sizes. */ { |