summaryrefslogtreecommitdiff
path: root/src/ui/window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/window.c')
-rw-r--r--src/ui/window.c43
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
64static const iMenuItem fileMenuItems[] = {
65#if !defined (iPlatformApple) 64#if !defined (iPlatformApple)
65# define iHaveNativeMenus
66#endif
67
68#if !defined (iHaveNativeMenus)
69static 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. */
81static 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
70static const iMenuItem editMenuItems[] = { 87static 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 }