summaryrefslogtreecommitdiff
path: root/src/ui/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/util.c')
-rw-r--r--src/ui/util.c27
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
109iBool 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
108int keyMods_Sym(int kmods) { 114int 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
929static 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
923static iWidget *appendTwoColumnPage_(iWidget *tabs, const char *title, int shortcut, iWidget **headings, 938static 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. */ {