diff options
Diffstat (limited to 'src/ui/window.c')
-rw-r--r-- | src/ui/window.c | 43 |
1 files changed, 34 insertions, 9 deletions
diff --git a/src/ui/window.c b/src/ui/window.c index 296b8d05..e5050308 100644 --- a/src/ui/window.c +++ b/src/ui/window.c | |||
@@ -61,11 +61,28 @@ static iBool handleRootCommands_(iWidget *root, const char *cmd) { | |||
61 | return iFalse; | 61 | return iFalse; |
62 | } | 62 | } |
63 | 63 | ||
64 | static const iMenuItem fileMenuItems[] = { | ||
65 | #if !defined (iPlatformApple) | 64 | #if !defined (iPlatformApple) |
65 | # define iHaveNativeMenus | ||
66 | #endif | ||
67 | |||
68 | #if !defined (iHaveNativeMenus) | ||
69 | static const iMenuItem navMenuItems[] = { | ||
70 | { "New Tab", 't', KMOD_PRIMARY, "tabs.new" }, | ||
71 | { "Open Location...", SDLK_l, KMOD_PRIMARY, "focus.set id:url" }, | ||
72 | { "---", 0, 0, NULL }, | ||
73 | { "Preferences...", SDLK_COMMA, KMOD_PRIMARY, "preferences" }, | ||
74 | { "---", 0, 0, NULL }, | ||
66 | { "Quit Lagrange", 'q', KMOD_PRIMARY, "quit" } | 75 | { "Quit Lagrange", 'q', KMOD_PRIMARY, "quit" } |
76 | }; | ||
67 | #endif | 77 | #endif |
78 | |||
79 | #if defined (iHaveNativeMenus) | ||
80 | /* Using native menus. */ | ||
81 | static const iMenuItem fileMenuItems[] = { | ||
82 | { "New Tab", SDLK_t, KMOD_PRIMARY, "tabs.new" }, | ||
83 | { "Open Location...", SDLK_l, KMOD_PRIMARY, "focus.set id:url" }, | ||
68 | }; | 84 | }; |
85 | #endif | ||
69 | 86 | ||
70 | static const iMenuItem editMenuItems[] = { | 87 | static const iMenuItem editMenuItems[] = { |
71 | #if !defined (iPlatformApple) | 88 | #if !defined (iPlatformApple) |
@@ -136,9 +153,11 @@ static iBool handleNavBarCommands_(iWidget *navBar, const char *cmd) { | |||
136 | else if (equal_Command(cmd, "tabs.changed")) { | 153 | else if (equal_Command(cmd, "tabs.changed")) { |
137 | /* Update navbar according to the current tab. */ | 154 | /* Update navbar according to the current tab. */ |
138 | iDocumentWidget *doc = document_App(); | 155 | iDocumentWidget *doc = document_App(); |
139 | setText_InputWidget(findWidget_App("url"), url_DocumentWidget(doc)); | 156 | if (doc) { |
140 | updateTextCStr_LabelWidget(findChild_Widget(navBar, "reload"), | 157 | setText_InputWidget(findWidget_App("url"), url_DocumentWidget(doc)); |
141 | isRequestOngoing_DocumentWidget(doc) ? stopCStr_ : reloadCStr_); | 158 | updateTextCStr_LabelWidget(findChild_Widget(navBar, "reload"), |
159 | isRequestOngoing_DocumentWidget(doc) ? stopCStr_ : reloadCStr_); | ||
160 | } | ||
142 | } | 161 | } |
143 | else if (equal_Command(cmd, "mouse.clicked")) { | 162 | else if (equal_Command(cmd, "mouse.clicked")) { |
144 | iWidget *widget = pointer_Command(cmd); | 163 | iWidget *widget = pointer_Command(cmd); |
@@ -241,10 +260,14 @@ static void setupUserInterface_Window(iWindow *d) { | |||
241 | "reload"); | 260 | "reload"); |
242 | addChild_Widget(navBar, iClob(newIcon_LabelWidget("\U0001f464", 0, 0, "cert.client"))); | 261 | addChild_Widget(navBar, iClob(newIcon_LabelWidget("\U0001f464", 0, 0, "cert.client"))); |
243 | 262 | ||
244 | iLabelWidget *fileMenu = | 263 | #if !defined (iHaveNativeMenus) |
245 | makeMenuButton_LabelWidget("\U0001d362", fileMenuItems, iElemCount(fileMenuItems)); | 264 | iLabelWidget *navMenu = |
246 | setAlignVisually_LabelWidget(fileMenu, iTrue); | 265 | makeMenuButton_LabelWidget("\U0001d362", navMenuItems, iElemCount(navMenuItems)); |
247 | addChild_Widget(navBar, iClob(fileMenu)); | 266 | setAlignVisually_LabelWidget(navMenu, iTrue); |
267 | addChild_Widget(navBar, iClob(navMenu)); | ||
268 | #else | ||
269 | insertMenuItems_MacOS("File", fileMenuItems, iElemCount(fileMenuItems)); | ||
270 | #endif | ||
248 | } | 271 | } |
249 | /* Tab bar. */ { | 272 | /* Tab bar. */ { |
250 | iWidget *tabBar = makeTabs_Widget(div); | 273 | iWidget *tabBar = makeTabs_Widget(div); |
@@ -252,8 +275,10 @@ static void setupUserInterface_Window(iWindow *d) { | |||
252 | setFlags_Widget(tabBar, expand_WidgetFlag, iTrue); | 275 | setFlags_Widget(tabBar, expand_WidgetFlag, iTrue); |
253 | setBackgroundColor_Widget(tabBar, gray25_ColorId); | 276 | setBackgroundColor_Widget(tabBar, gray25_ColorId); |
254 | appendTabPage_Widget(tabBar, iClob(new_DocumentWidget()), "Document", '1', KMOD_PRIMARY); | 277 | appendTabPage_Widget(tabBar, iClob(new_DocumentWidget()), "Document", '1', KMOD_PRIMARY); |
278 | iWidget *buttons = findChild_Widget(tabBar, "tabs.buttons"); | ||
279 | setFlags_Widget(buttons, collapse_WidgetFlag | hidden_WidgetFlag, iTrue); | ||
255 | setId_Widget( | 280 | setId_Widget( |
256 | addChild_Widget(findChild_Widget(tabBar, "tabs.buttons"), | 281 | addChild_Widget(buttons, |
257 | iClob(newIcon_LabelWidget("\u2795", 't', KMOD_PRIMARY, "tabs.new"))), | 282 | iClob(newIcon_LabelWidget("\u2795", 't', KMOD_PRIMARY, "tabs.new"))), |
258 | "newtab"); | 283 | "newtab"); |
259 | } | 284 | } |