Commit 51dd1c6bd67c70ce0bdcfd6491762fcf62a2d7a1
1 parent
9a07d778
Exists in
master
and in
5 other branches
Implementando suporte aos menus do MAC
Showing
7 changed files
with
325 additions
and
12 deletions
Show diff stats
pw3270.komodoproject
1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <!-- Komodo Project File - DO NOT EDIT --> | 2 | <!-- Komodo Project File - DO NOT EDIT --> |
3 | <project id="835c3792-90af-274e-8705-405cacf376e1" kpf_version="5" name="pw3270.komodoproject"> | 3 | <project id="835c3792-90af-274e-8705-405cacf376e1" kpf_version="5" name="pw3270.komodoproject"> |
4 | +<preference-set idref="835c3792-90af-274e-8705-405cacf376e1"> | ||
5 | + <long id="caretStyle">1</long> | ||
6 | + <long id="caretWidth">1</long> | ||
7 | + <boolean id="checkDiskFile">1</boolean> | ||
8 | + <boolean id="checkNetworkDiskFile">1</boolean> | ||
9 | + <long id="codeintel_highlight_variables_auto_delay">250</long> | ||
10 | + <boolean id="codeintel_highlight_variables_auto_keyboard">0</boolean> | ||
11 | + <boolean id="codeintel_highlight_variables_auto_mouse">1</boolean> | ||
12 | + <boolean id="codeintel_highlight_variables_match_prefix">0</boolean> | ||
13 | + <long id="codeintel_highlight_variables_min_auto_length">2</long> | ||
14 | + <boolean id="codeintel_highlight_variables_use_scope">1</boolean> | ||
15 | + <boolean id="dedentOnColon">0</boolean> | ||
16 | + <string id="defaultDateFormat">%25a %25b %25d %25H:%25M:%25S %25Y</string> | ||
17 | + <string id="donotask_action_close_deleted_files"></string> | ||
18 | + <string id="donotask_action_dragdrop_uri"></string> | ||
19 | + <string id="donotask_action_reload_changed_files"></string> | ||
20 | + <boolean id="donotask_buffer_conflicts_with_file_on_disk">0</boolean> | ||
21 | + <boolean id="donotask_close_deleted_files">0</boolean> | ||
22 | + <boolean id="donotask_dragdrop_uri">0</boolean> | ||
23 | + <boolean id="donotask_reload_changed_files">0</boolean> | ||
24 | + <boolean id="donotask_revert_buffer">0</boolean> | ||
25 | + <boolean id="donotask_treat_large_documents_as_text">0</boolean> | ||
26 | + <string id="editAutoIndentStyle">smart</string> | ||
27 | + <long id="editAutoWrapColumn">80</long> | ||
28 | + <boolean id="editBackspaceDedents">1</boolean> | ||
29 | + <boolean id="editElectricBrace">1</boolean> | ||
30 | + <boolean id="editFoldLines">1</boolean> | ||
31 | + <string id="editFoldStyle">squaretree</string> | ||
32 | + <boolean id="editRestoreFoldPoints">0</boolean> | ||
33 | + <boolean id="editSmartCutCopyWithoutSelection">1</boolean> | ||
34 | + <boolean id="editSmartSoftCharacters">1</boolean> | ||
35 | + <boolean id="editTabCompletes">0</boolean> | ||
36 | + <boolean id="editUseEdge">1</boolean> | ||
37 | + <boolean id="editUseLinting">1</boolean> | ||
38 | + <long id="editWordWrapIndentation">0</long> | ||
39 | + <long id="editWordWrapMarker">0</long> | ||
40 | + <long id="editWrapType">0</long> | ||
41 | + <boolean id="enableSmartSoftCharactersInsideLine">0</boolean> | ||
42 | + <boolean id="encodingAutoDetect">1</boolean> | ||
43 | + <string id="encodingDefault">mac-roman</string> | ||
44 | + <boolean id="encodingEnvironment">1</boolean> | ||
45 | + <boolean id="encodingHTML">0</boolean> | ||
46 | + <boolean id="encodingModeline">1</boolean> | ||
47 | + <boolean id="encodingXMLDec">1</boolean> | ||
48 | + <boolean id="foldSeparateBlockParts">0</boolean> | ||
49 | + <boolean id="hyperlinksEnableGotoDefinition">1</boolean> | ||
50 | + <boolean id="hyperlinksEnabled">1</boolean> | ||
51 | + <string relative="path" id="import_dirname"></string> | ||
52 | + <string id="import_exclude_matches">*.*~;*.bak;*.tmp;CVS;.#*;*.pyo;*.pyc;.svn;.git;.hg;.bzr;*%25*;tmp*.html;.DS_Store;*.swp;*.kpf;*.komodoproject;.komodotools;__pycache__</string> | ||
53 | + <string id="import_include_matches"></string> | ||
54 | + <boolean id="indentStringsAfterParens">0</boolean> | ||
55 | + <long id="indentWidth">4</long> | ||
56 | + <string id="jshintOptions"></string> | ||
57 | + <string id="jshint_linter_chooser">default</string> | ||
58 | + <string id="jshint_linter_specific"></string> | ||
59 | + <string id="jslintOptions"></string> | ||
60 | + <string id="jslint_linter_chooser">default</string> | ||
61 | + <string id="jslint_linter_specific"></string> | ||
62 | +<preference-set id="languages"> | ||
63 | +<preference-set id="languages/Ada"> | ||
64 | + <boolean id="Ada/newBOM">0</boolean> | ||
65 | + <string id="Ada/newEncoding">Default Encoding</string> | ||
66 | +</preference-set> | ||
67 | +<preference-set id="languages/Apache"> | ||
68 | + <boolean id="Apache/newBOM">0</boolean> | ||
69 | + <string id="Apache/newEncoding">Default Encoding</string> | ||
70 | +</preference-set> | ||
71 | +<preference-set id="languages/Baan"> | ||
72 | + <boolean id="Baan/newBOM">0</boolean> | ||
73 | + <string id="Baan/newEncoding">Default Encoding</string> | ||
74 | +</preference-set> | ||
75 | +<preference-set id="languages/Batch"> | ||
76 | + <boolean id="Batch/newBOM">0</boolean> | ||
77 | + <string id="Batch/newEncoding">Default Encoding</string> | ||
78 | +</preference-set> | ||
79 | +<preference-set id="languages/Bullant"> | ||
80 | + <boolean id="Bullant/newBOM">0</boolean> | ||
81 | + <string id="Bullant/newEncoding">Default Encoding</string> | ||
82 | +</preference-set> | ||
83 | +<preference-set id="languages/C#"> | ||
84 | + <boolean id="C#/newBOM">0</boolean> | ||
85 | + <string id="C#/newEncoding">Default Encoding</string> | ||
86 | +</preference-set> | ||
87 | +<preference-set id="languages/C++"> | ||
88 | + <boolean id="C++/newBOM">0</boolean> | ||
89 | + <string id="C++/newEncoding">utf-8</string> | ||
90 | +</preference-set> | ||
91 | +<preference-set id="languages/CSS"> | ||
92 | + <boolean id="CSS/newBOM">0</boolean> | ||
93 | + <string id="CSS/newEncoding">Default Encoding</string> | ||
94 | +</preference-set> | ||
95 | +<preference-set id="languages/Diff"> | ||
96 | + <boolean id="Diff/newBOM">0</boolean> | ||
97 | + <string id="Diff/newEncoding">Default Encoding</string> | ||
98 | +</preference-set> | ||
99 | +<preference-set id="languages/Eiffel"> | ||
100 | + <boolean id="Eiffel/newBOM">0</boolean> | ||
101 | + <string id="Eiffel/newEncoding">Default Encoding</string> | ||
102 | +</preference-set> | ||
103 | +<preference-set id="languages/Errors"> | ||
104 | + <boolean id="C++/newBOM">0</boolean> | ||
105 | + <string id="C++/newEncoding">Default Encoding</string> | ||
106 | +</preference-set> | ||
107 | +<preference-set id="languages/Fortran"> | ||
108 | + <boolean id="Fortran/newBOM">0</boolean> | ||
109 | + <string id="Fortran/newEncoding">Default Encoding</string> | ||
110 | +</preference-set> | ||
111 | +<preference-set id="languages/Fortran 77"> | ||
112 | + <boolean id="Fortran 77/newBOM">0</boolean> | ||
113 | + <string id="Fortran 77/newEncoding">Default Encoding</string> | ||
114 | +</preference-set> | ||
115 | +<preference-set id="languages/HTML"> | ||
116 | + <boolean id="HTML/newBOM">0</boolean> | ||
117 | + <string id="HTML/newEncoding">Default Encoding</string> | ||
118 | +</preference-set> | ||
119 | +<preference-set id="languages/IDL"> | ||
120 | + <boolean id="IDL/newBOM">0</boolean> | ||
121 | + <string id="IDL/newEncoding">Default Encoding</string> | ||
122 | +</preference-set> | ||
123 | +<preference-set id="languages/Java"> | ||
124 | + <boolean id="Java/newBOM">0</boolean> | ||
125 | + <string id="Java/newEncoding">Default Encoding</string> | ||
126 | +</preference-set> | ||
127 | +<preference-set id="languages/JavaScript"> | ||
128 | + <boolean id="JavaScript/newBOM">0</boolean> | ||
129 | + <string id="JavaScript/newEncoding">Default Encoding</string> | ||
130 | +</preference-set> | ||
131 | +<preference-set id="languages/LaTeX"> | ||
132 | + <boolean id="LaTeX/newBOM">0</boolean> | ||
133 | + <string id="LaTeX/newEncoding">Default Encoding</string> | ||
134 | +</preference-set> | ||
135 | +<preference-set id="languages/Lisp"> | ||
136 | + <boolean id="Lisp/newBOM">0</boolean> | ||
137 | + <string id="Lisp/newEncoding">Default Encoding</string> | ||
138 | +</preference-set> | ||
139 | +<preference-set id="languages/Lua"> | ||
140 | + <boolean id="Lua/newBOM">0</boolean> | ||
141 | + <string id="Lua/newEncoding">Default Encoding</string> | ||
142 | +</preference-set> | ||
143 | +<preference-set id="languages/Makefile"> | ||
144 | + <boolean id="Makefile/newBOM">0</boolean> | ||
145 | + <string id="Makefile/newEncoding">Default Encoding</string> | ||
146 | + <boolean id="useTabs">1</boolean> | ||
147 | +</preference-set> | ||
148 | +<preference-set id="languages/Matlab"> | ||
149 | + <boolean id="Matlab/newBOM">0</boolean> | ||
150 | + <string id="Matlab/newEncoding">Default Encoding</string> | ||
151 | +</preference-set> | ||
152 | +<preference-set id="languages/PHP"> | ||
153 | + <boolean id="PHP/newBOM">0</boolean> | ||
154 | + <string id="PHP/newEncoding">Default Encoding</string> | ||
155 | +</preference-set> | ||
156 | +<preference-set id="languages/Pascal"> | ||
157 | + <boolean id="Pascal/newBOM">0</boolean> | ||
158 | + <string id="Pascal/newEncoding">Default Encoding</string> | ||
159 | +</preference-set> | ||
160 | +<preference-set id="languages/Perl"> | ||
161 | + <boolean id="Perl/newBOM">0</boolean> | ||
162 | + <string id="Perl/newEncoding">Default Encoding</string> | ||
163 | +</preference-set> | ||
164 | +<preference-set id="languages/Python"> | ||
165 | + <boolean id="Python/newBOM">0</boolean> | ||
166 | + <string id="Python/newEncoding">ascii</string> | ||
167 | +</preference-set> | ||
168 | +<preference-set id="languages/Python3"> | ||
169 | + <boolean id="Python3/newBOM">0</boolean> | ||
170 | + <string id="Python3/newEncoding">ascii</string> | ||
171 | +</preference-set> | ||
172 | +<preference-set id="languages/RHTML"> | ||
173 | + <boolean id="RHTML/newBOM">0</boolean> | ||
174 | + <string id="RHTML/newEncoding">Default Encoding</string> | ||
175 | + <long id="indentWidth">2</long> | ||
176 | +</preference-set> | ||
177 | +<preference-set id="languages/Ruby"> | ||
178 | + <boolean id="Ruby/newBOM">0</boolean> | ||
179 | + <string id="Ruby/newEncoding">Default Encoding</string> | ||
180 | + <long id="indentWidth">2</long> | ||
181 | +</preference-set> | ||
182 | +<preference-set id="languages/SQL"> | ||
183 | + <boolean id="SQL/newBOM">0</boolean> | ||
184 | + <string id="SQL/newEncoding">Default Encoding</string> | ||
185 | +</preference-set> | ||
186 | +<preference-set id="languages/Tcl"> | ||
187 | + <boolean id="Tcl/newBOM">0</boolean> | ||
188 | + <string id="Tcl/newEncoding">Default Encoding</string> | ||
189 | +</preference-set> | ||
190 | +<preference-set id="languages/Text"> | ||
191 | + <boolean id="Text/newBOM">0</boolean> | ||
192 | + <string id="Text/newEncoding">Default Encoding</string> | ||
193 | +</preference-set> | ||
194 | +<preference-set id="languages/VisualBasic"> | ||
195 | + <boolean id="VisualBasic/newBOM">0</boolean> | ||
196 | + <string id="VisualBasic/newEncoding">utf-8</string> | ||
197 | +</preference-set> | ||
198 | +<preference-set id="languages/XML"> | ||
199 | + <boolean id="XML/newBOM">0</boolean> | ||
200 | + <string id="XML/newEncoding">utf-8</string> | ||
201 | +</preference-set> | ||
202 | +<preference-set id="languages/XSLT"> | ||
203 | + <boolean id="XSLT/newBOM">0</boolean> | ||
204 | + <string id="XSLT/newEncoding">utf-8</string> | ||
205 | +</preference-set> | ||
206 | +<preference-set id="languages/nnCrontab"> | ||
207 | + <boolean id="nnCrontab/newBOM">0</boolean> | ||
208 | + <string id="nnCrontab/newEncoding">Default Encoding</string> | ||
209 | +</preference-set> | ||
210 | +</preference-set> | ||
211 | + <boolean id="lintClearOnTextChange">0</boolean> | ||
212 | + <long id="lintDelay">1000</long> | ||
213 | + <boolean id="lintEOLs">1</boolean> | ||
214 | + <boolean id="lintHTML5Lib">0</boolean> | ||
215 | + <boolean id="lintHTMLTidy">1</boolean> | ||
216 | + <boolean id="lintHTML_CheckWith_Perl_HTML_Lint">0</boolean> | ||
217 | + <boolean id="lintHTML_CheckWith_Perl_HTML_Tidy">0</boolean> | ||
218 | + <boolean id="lintJavaScriptEnableStrict">1</boolean> | ||
219 | + <boolean id="lintJavaScriptEnableWarnings">1</boolean> | ||
220 | + <boolean id="lintJavaScript_SpiderMonkey">1</boolean> | ||
221 | + <boolean id="lintWithJSHint">0</boolean> | ||
222 | + <boolean id="lintWithJSLint">0</boolean> | ||
223 | + <boolean id="lint_coffee_script">1</boolean> | ||
224 | + <boolean id="lint_python3_with_standard_python">1</boolean> | ||
225 | + <boolean id="lint_python_with_pychecker">0</boolean> | ||
226 | + <boolean id="lint_python_with_pyflakes">0</boolean> | ||
227 | + <boolean id="lint_python_with_pylint">0</boolean> | ||
228 | + <boolean id="lint_python_with_standard_python">1</boolean> | ||
229 | + <string id="perl_lintOption">cw</string> | ||
230 | + <boolean id="perl_lintOption_disableBeginBlocks">1</boolean> | ||
231 | + <boolean id="perl_lintOption_includeCurrentDirForLinter">1</boolean> | ||
232 | + <string id="perl_lintOption_perlCriticLevel">off</string> | ||
233 | + <string id="pychecker_checking_rcfile"></string> | ||
234 | + <string id="pychecker_wrapper_location"></string> | ||
235 | + <string id="pylint_checking_rcfile"></string> | ||
236 | + <string id="ruby_lintOption">cwT</string> | ||
237 | + <boolean id="scrollEndAtLastLine">0</boolean> | ||
238 | + <long id="scrollWidth">2000</long> | ||
239 | + <boolean id="scrollWidthTracking">0</boolean> | ||
240 | + <boolean id="select_most_recent_buffer_on_buffer_close">0</boolean> | ||
241 | + <boolean id="showEOL">0</boolean> | ||
242 | + <boolean id="showIndentationGuides">1</boolean> | ||
243 | + <boolean id="showLineNumbers">1</boolean> | ||
244 | + <boolean id="showWhitespace">0</boolean> | ||
245 | + <long id="tabWidth">8</long> | ||
246 | + <string id="tidy_accessibility">0</string> | ||
247 | + <string id="tidy_configpath"></string> | ||
248 | + <string id="tidy_errorlevel">errors</string> | ||
249 | + <boolean id="useSmartTabs">1</boolean> | ||
250 | + <boolean id="useTabs">1</boolean> | ||
251 | + <string id="userEnvironmentStartupOverride"></string> | ||
252 | + <long id="ySlop">5</long> | ||
253 | +</preference-set> | ||
4 | </project> | 254 | </project> |
src/pw3270/uiparser/action.c
src/pw3270/uiparser/menu.c
@@ -72,7 +72,9 @@ | @@ -72,7 +72,9 @@ | ||
72 | 72 | ||
73 | gtk_menu_shell_append((GtkMenuShell *) menu, widget); | 73 | gtk_menu_shell_append((GtkMenuShell *) menu, widget); |
74 | 74 | ||
75 | -// trace("%s: %s=%p",__FUNCTION__,gtk_widget_get_name(widget),widget); | 75 | +#ifdef HAVE_GTKMAC |
76 | + ui_check_for_sysmenu(widget,info,ui_get_attribute("sysmenu",names,values)); | ||
77 | +#endif // HAVE_GTKMAC | ||
76 | 78 | ||
77 | return ui_insert_element(info, action, UI_ELEMENT_MENU, names, values, G_OBJECT(widget), error); | 79 | return ui_insert_element(info, action, UI_ELEMENT_MENU, names, values, G_OBJECT(widget), error); |
78 | } | 80 | } |
src/pw3270/uiparser/menuitem.c
@@ -32,12 +32,34 @@ | @@ -32,12 +32,34 @@ | ||
32 | #include "private.h" | 32 | #include "private.h" |
33 | 33 | ||
34 | #ifdef HAVE_GTKMAC | 34 | #ifdef HAVE_GTKMAC |
35 | - #include <gtkmacintegration/gtk-mac-menu.h> | 35 | + #include <gtkmacintegration/gtk-mac-menu.h> |
36 | #endif // HAVE_GTKMAC | 36 | #endif // HAVE_GTKMAC |
37 | 37 | ||
38 | 38 | ||
39 | /*--[ Implement ]------------------------------------------------------------------------------------*/ | 39 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
40 | 40 | ||
41 | +#ifdef HAVE_GTKMAC | ||
42 | + void ui_check_for_sysmenu(GtkWidget *widget, struct parser *info, const gchar *name) | ||
43 | + { | ||
44 | + static const gchar *sysmenu[SYSMENU_ITEM_COUNT] = { "about", "preferences", "quit" }; | ||
45 | + int f; | ||
46 | + | ||
47 | + if(!name) | ||
48 | + return; | ||
49 | + | ||
50 | + for(f=0;f<SYSMENU_ITEM_COUNT;f++) | ||
51 | + { | ||
52 | + if(!g_strcasecmp(name,sysmenu[f])) | ||
53 | + { | ||
54 | + info->sysmenu[f] = widget; | ||
55 | + return; | ||
56 | + } | ||
57 | + } | ||
58 | + | ||
59 | + } | ||
60 | +#endif // HAVE_GTKMAC | ||
61 | + | ||
62 | + | ||
41 | GObject * ui_create_menuitem(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error) | 63 | GObject * ui_create_menuitem(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error) |
42 | { | 64 | { |
43 | GtkWidget * widget = NULL; | 65 | GtkWidget * widget = NULL; |
@@ -113,10 +135,13 @@ | @@ -113,10 +135,13 @@ | ||
113 | } | 135 | } |
114 | } | 136 | } |
115 | 137 | ||
138 | +#ifdef HAVE_GTKMAC | ||
139 | + ui_check_for_sysmenu(widget,info,ui_get_attribute("sysmenu",names,values)); | ||
140 | +#endif // HAVE_GTKMAC | ||
141 | + | ||
116 | return G_OBJECT(widget); | 142 | return G_OBJECT(widget); |
117 | } | 143 | } |
118 | 144 | ||
119 | void ui_end_menuitem(GMarkupParseContext *context,GObject *widget,struct parser *info,GError **error) | 145 | void ui_end_menuitem(GMarkupParseContext *context,GObject *widget,struct parser *info,GError **error) |
120 | { | 146 | { |
121 | } | 147 | } |
122 | - |
src/pw3270/uiparser/parser.c
@@ -232,10 +232,30 @@ void parser_build(struct parser *p, GtkWidget *widget) | @@ -232,10 +232,30 @@ void parser_build(struct parser *p, GtkWidget *widget) | ||
232 | gtk_window_set_default(GTK_WINDOW(p->toplevel),widget); | 232 | gtk_window_set_default(GTK_WINDOW(p->toplevel),widget); |
233 | 233 | ||
234 | #ifdef HAVE_GTKMAC | 234 | #ifdef HAVE_GTKMAC |
235 | - if(p->topmenu) | ||
236 | { | 235 | { |
237 | - gtk_widget_set_visible(p->topmenu,FALSE); | ||
238 | - gtk_mac_menu_set_menu_bar(GTK_MENU_SHELL(p->topmenu)); | 236 | + if(p->topmenu) |
237 | + { | ||
238 | + gtk_widget_set_visible(p->topmenu,FALSE); | ||
239 | + gtk_mac_menu_set_menu_bar(GTK_MENU_SHELL(p->topmenu)); | ||
240 | + } | ||
241 | + | ||
242 | + if(p->sysmenu[SYSMENU_ITEM_QUIT]) | ||
243 | + { | ||
244 | + gtk_mac_menu_set_quit_menu_item (GTK_MENU_ITEM(p->sysmenu[SYSMENU_ITEM_QUIT])); | ||
245 | + } | ||
246 | + | ||
247 | + if(p->sysmenu[SYSMENU_ITEM_ABOUT]) | ||
248 | + { | ||
249 | + GtkMacMenuGroup *group = gtk_mac_menu_add_app_menu_group(); | ||
250 | + gtk_mac_menu_add_app_menu_item(group,GTK_MENU_ITEM(p->sysmenu[SYSMENU_ITEM_ABOUT]),NULL); | ||
251 | + } | ||
252 | + | ||
253 | + if(p->sysmenu[SYSMENU_ITEM_PREFERENCES]) | ||
254 | + { | ||
255 | + GtkMacMenuGroup *group = gtk_mac_menu_add_app_menu_group(); | ||
256 | + gtk_mac_menu_add_app_menu_item(group,GTK_MENU_ITEM(p->sysmenu[SYSMENU_ITEM_PREFERENCES]),NULL); | ||
257 | + } | ||
258 | + | ||
239 | } | 259 | } |
240 | #endif // HAVE_GTKMAC | 260 | #endif // HAVE_GTKMAC |
241 | 261 | ||
@@ -364,4 +384,3 @@ const gchar * ui_get_dir_name(UI_ATTR_DIRECTION dir) | @@ -364,4 +384,3 @@ const gchar * ui_get_dir_name(UI_ATTR_DIRECTION dir) | ||
364 | return ""; | 384 | return ""; |
365 | return dirname[dir]; | 385 | return dirname[dir]; |
366 | } | 386 | } |
367 | - |
src/pw3270/uiparser/private.h
@@ -53,6 +53,18 @@ | @@ -53,6 +53,18 @@ | ||
53 | #define UI_ELEMENT_MENUITEM UI_ELEMENT_COUNT+4 | 53 | #define UI_ELEMENT_MENUITEM UI_ELEMENT_COUNT+4 |
54 | #define UI_ELEMENT_SCROLL UI_ELEMENT_COUNT+5 | 54 | #define UI_ELEMENT_SCROLL UI_ELEMENT_COUNT+5 |
55 | 55 | ||
56 | +#ifdef HAVE_GTKMAC | ||
57 | + enum SYSMENU_ITEM | ||
58 | + { | ||
59 | + SYSMENU_ITEM_ABOUT, | ||
60 | + SYSMENU_ITEM_PREFERENCES, | ||
61 | + SYSMENU_ITEM_QUIT, | ||
62 | + | ||
63 | + SYSMENU_ITEM_COUNT | ||
64 | + | ||
65 | + }; | ||
66 | +#endif // HAVE_GTKMAC | ||
67 | + | ||
56 | struct parser | 68 | struct parser |
57 | { | 69 | { |
58 | GtkWidget * toplevel; | 70 | GtkWidget * toplevel; |
@@ -69,6 +81,9 @@ | @@ -69,6 +81,9 @@ | ||
69 | GHashTable * actions; /**< List of actions */ | 81 | GHashTable * actions; /**< List of actions */ |
70 | GHashTable * element_list[UI_ELEMENT_COUNT]; | 82 | GHashTable * element_list[UI_ELEMENT_COUNT]; |
71 | const UI_WIDGET_SETUP * setup; | 83 | const UI_WIDGET_SETUP * setup; |
84 | +#ifdef HAVE_GTKMAC | ||
85 | + GtkWidget * sysmenu[SYSMENU_ITEM_COUNT]; | ||
86 | +#endif // HAVE_GTKMAC | ||
72 | }; | 87 | }; |
73 | 88 | ||
74 | int ui_parse_file(struct parser *info, const gchar *filename); | 89 | int ui_parse_file(struct parser *info, const gchar *filename); |
@@ -77,6 +92,10 @@ | @@ -77,6 +92,10 @@ | ||
77 | GObject * ui_get_element(struct parser *info, GtkAction *action, enum ui_element id, const gchar **names, const gchar **values, GError **error); | 92 | GObject * ui_get_element(struct parser *info, GtkAction *action, enum ui_element id, const gchar **names, const gchar **values, GError **error); |
78 | GObject * ui_insert_element(struct parser *info, GtkAction *action, enum ui_element id, const gchar **names, const gchar **values, GObject *widget, GError **error); | 93 | GObject * ui_insert_element(struct parser *info, GtkAction *action, enum ui_element id, const gchar **names, const gchar **values, GObject *widget, GError **error); |
79 | 94 | ||
95 | +#ifdef HAVE_GTKMAC | ||
96 | + void ui_check_for_sysmenu(GtkWidget *widget, struct parser *info, const gchar *name); | ||
97 | +#endif // HAVE_GTKMAC | ||
98 | + | ||
80 | GObject * ui_create_menubar(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error); | 99 | GObject * ui_create_menubar(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error); |
81 | GObject * ui_create_menu(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error); | 100 | GObject * ui_create_menu(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error); |
82 | GObject * ui_create_menuitem(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error); | 101 | GObject * ui_create_menuitem(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error); |
ui/00default.xml
@@ -54,7 +54,7 @@ | @@ -54,7 +54,7 @@ | ||
54 | <menuitem action='download' key='<alt>d' label='Receive file' /> | 54 | <menuitem action='download' key='<alt>d' label='Receive file' /> |
55 | <menuitem action='upload' key='<alt>u' label='Send file' /> | 55 | <menuitem action='upload' key='<alt>u' label='Send file' /> |
56 | </menu> | 56 | </menu> |
57 | - <menuitem action='Quit' key='<ctrl>q' icon="quit" /> | 57 | + <menuitem action='Quit' key='<ctrl>q' icon="quit" sysmenu="quit"/> |
58 | </menu> | 58 | </menu> |
59 | 59 | ||
60 | <menu name='EditMenu' label='_Edit' > | 60 | <menu name='EditMenu' label='_Edit' > |
@@ -104,7 +104,7 @@ | @@ -104,7 +104,7 @@ | ||
104 | <menuitem action='disconnect' icon='disconnect' group='online' label='_Disconnect' /> | 104 | <menuitem action='disconnect' icon='disconnect' group='online' label='_Disconnect' /> |
105 | </menu> | 105 | </menu> |
106 | 106 | ||
107 | - <menu name='SettingsMenu' label='Settings' sysmenu='yes' > | 107 | + <menu name='SettingsMenu' label='Settings' sysmenu='preferences' > |
108 | <menuitem action='editcolors' icon='select-color' label='Colors' /> | 108 | <menuitem action='editcolors' icon='select-color' label='Colors' /> |
109 | 109 | ||
110 | <!--- Special action - The fontselect menu will be populated with all available monospaced fonts ---> | 110 | <!--- Special action - The fontselect menu will be populated with all available monospaced fonts ---> |
@@ -138,7 +138,7 @@ | @@ -138,7 +138,7 @@ | ||
138 | </menu> | 138 | </menu> |
139 | 139 | ||
140 | <menu name='HelpMenu' label='Help' > | 140 | <menu name='HelpMenu' label='Help' > |
141 | - <menuitem action='about' icon='about' sysmenu='yes' /> | 141 | + <menuitem action='about' icon='about' sysmenu='about' /> |
142 | </menu> | 142 | </menu> |
143 | 143 | ||
144 | </menubar> | 144 | </menubar> |
@@ -260,4 +260,3 @@ | @@ -260,4 +260,3 @@ | ||
260 | <accelerator name='KPadd' action='kpadd' key='KP_Add' group='online' /> | 260 | <accelerator name='KPadd' action='kpadd' key='KP_Add' group='online' /> |
261 | 261 | ||
262 | </ui> | 262 | </ui> |
263 | - |