Merge lp:~merlijn-sebrechts/xpad/better_menus into lp:xpad

Proposed by Merlijn Sebrechts
Status: Merged
Merged at revision: 713
Proposed branch: lp:~merlijn-sebrechts/xpad/better_menus
Merge into: lp:xpad
Diff against target: 494 lines (+171/-137)
3 files modified
README (+3/-2)
src/xpad-pad.c (+14/-126)
src/xpad-preferences.c (+154/-9)
To merge this branch: bzr merge lp:~merlijn-sebrechts/xpad/better_menus
Reviewer Review Type Date Requested Status
Arthur Borsboom Pending
Review via email: mp+244712@code.launchpad.net

Description of the change

Implemented changes in menu as per blueprint https://blueprints.launchpad.net/xpad/+spec/xpad-menu-organization

To post a comment you must log in.
Revision history for this message
Arthur Borsboom (arthurborsboom) wrote :
Download full text (25.2 KiB)

Haha... dit dus :)

On 15 December 2014 at 12:45, Merlijn Sebrechts <<email address hidden>
> wrote:
>
> Merlijn Sebrechts has proposed merging
> lp:~merlijn-sebrechts/xpad/better_menus into lp:xpad.
>
> Requested reviews:
> Arthur Borsboom (arthurborsboom)
> Related bugs:
> Bug #1395889 in Xpad: "Better defaults and simpler menus"
> https://bugs.launchpad.net/xpad/+bug/1395889
>
> For more details, see:
>
> https://code.launchpad.net/~merlijn-sebrechts/xpad/better_menus/+merge/244712
>
> Implemented changes in menu as per blueprint
> https://blueprints.launchpad.net/xpad/+spec/xpad-menu-organization
> --
> You are requested to review the proposed merge of
> lp:~merlijn-sebrechts/xpad/better_menus into lp:xpad.
>
> === modified file 'src/xpad-pad.c'
> --- src/xpad-pad.c 2014-11-22 12:14:17 +0000
> +++ src/xpad-pad.c 2014-12-15 11:45:07 +0000
> @@ -506,10 +506,6 @@
> gboolean decorations;
> g_object_get (pad->priv->settings, "has-decorations",
> &decorations, NULL);
>
> - /* Update pad menu with the new status */
> - GtkWidget *menu_item = g_object_get_data (G_OBJECT
> (pad->priv->menu), "has-decorations");
> - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item),
> decorations);
> -
> /*
> * There are two modes of operation: a normal mode and a
> 'stealth' mode.
> * If decorations are disabled, we also don't show up in the
> taskbar or pager.
> @@ -535,12 +531,6 @@
> gboolean has_toolbar, autohide_toolbar;
> g_object_get (pad->priv->settings, "has-toolbar", &has_toolbar,
> "autohide-toolbar", &autohide_toolbar, NULL);
>
> - /* Update pad menu with the new status */
> - GtkWidget *menu_item = g_object_get_data (G_OBJECT
> (pad->priv->menu), "has-toolbar");
> - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item),
> has_toolbar);
> - menu_item = g_object_get_data (G_OBJECT (pad->priv->menu),
> "has-autohide-toolbar");
> - gtk_widget_set_sensitive (menu_item, has_toolbar);
> -
> if (has_toolbar && !autohide_toolbar)
> xpad_pad_show_toolbar (pad);
> else
> @@ -553,10 +543,6 @@
> gboolean autohide_toolbar;
> g_object_get (pad->priv->settings, "autohide-toolbar",
> &autohide_toolbar, NULL);
>
> - /* Update pad menu with the new status */
> - GtkWidget *menu_item = g_object_get_data (G_OBJECT
> (pad->priv->menu), "has-autohide-toolbar");
> - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item),
> autohide_toolbar);
> -
> if (autohide_toolbar)
> {
> /* Likely not to be in pad when turning setting on */
> @@ -579,10 +565,6 @@
> gboolean has_scrollbar;
> g_object_get (pad->priv->settings, "has-scrollbar",
> &has_scrollbar, NULL);
>
> - /* Update pad menu with the new status */
> - GtkWidget *menu_item = g_object_get_data (G_OBJECT
> (pad->priv->menu), "has-scrollbar");
> - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item),
> has_scrollbar);
> -
> if (has_scrollbar)
> gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW
> (pad-...

Revision history for this message
Arthur Borsboom (arthurborsboom) wrote :

Hi Merlijn,

The new menus look fine and are according to specification.
I have one request for a change.

The Edit and Close items look a bit out of order.
Would you mind to switch the Edit and Close menu items and ask for another merge?

| New
| Delete
| Close
+ Edit
   | Undo
   | Redo
   ---------
   | Paste
   -----------
   | Layout

718. By Merlijn Sebrechts

Switched edit and close

719. By Merlijn Sebrechts

fixed bug in README

README didn't mention autogen.sh and didn't mention make install should be run as root. Fixed this

Revision history for this message
Merlijn Sebrechts (merlijn-sebrechts) wrote :

I switched edit and close. I also found a bug in the README. It didn't mention autogen.sh, and it didn't mention make install should be run as root.

Revision history for this message
Arthur Borsboom (arthurborsboom) wrote :

Hi Merlijn, Thans for making the change. I will redo the merge and test.

For the README I believe you are partially correct.

Developers have to run the autogen.sh, that is true.
However, the 'ready' packages which users can download at the launchpad
website (https://launchpad.net/xpad) are already prepared. In fact, I do
run the autogen.sh for them when creating this package.

For the make install, I believe you are right. I will add the fact that you
have to run the 'make install' as root. Good point.
Thank you for your help.

Stay tuned. :)

On 21 December 2014 at 12:31, Merlijn Sebrechts <<email address hidden>
> wrote:

> I switched edit and close. I also found a bug in the README. It didn't
> mention autogen.sh, and it didn't mention make install should be run as
> root.
> --
>
> https://code.launchpad.net/~merlijn-sebrechts/xpad/better_menus/+merge/244712
> You are requested to review the proposed merge of
> lp:~merlijn-sebrechts/xpad/better_menus into lp:xpad.
>

--
Arthur Borsboom
Lieven de Keystraat 77
3067 KG, Rotterdam
The Netherlands
Mob: +31629089953
Email: <email address hidden>
Skype: Arthur Borsboom, The Hague, The Netherlands

[image: View Arthur's LinkedIn profile]
<http://uk.linkedin.com/in/arthurborsboom>

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'README'
--- README 2014-11-22 15:21:30 +0000
+++ README 2014-12-21 11:27:28 +0000
@@ -7,8 +7,9 @@
7--------------------------------------------------------------------------7--------------------------------------------------------------------------
8INSTALLATION NOTES8INSTALLATION NOTES
9--------------------------------------------------------------------------9--------------------------------------------------------------------------
10 To compile, just type "./configure", "make", and "make install".10 To compile, run "./autogen.sh", which will give you all files to
11 Type "xpad" now to run.11 compile and make the package. Then type "./configure" and "make".
12 Finally, run "make install" as root. Type "xpad" now to run.
1213
13 Read the INSTALL file for more information.14 Read the INSTALL file for more information.
1415
1516
=== modified file 'src/xpad-pad.c'
--- src/xpad-pad.c 2014-11-22 12:14:17 +0000
+++ src/xpad-pad.c 2014-12-21 11:27:28 +0000
@@ -506,10 +506,6 @@
506 gboolean decorations;506 gboolean decorations;
507 g_object_get (pad->priv->settings, "has-decorations", &decorations, NULL);507 g_object_get (pad->priv->settings, "has-decorations", &decorations, NULL);
508508
509 /* Update pad menu with the new status */
510 GtkWidget *menu_item = g_object_get_data (G_OBJECT (pad->priv->menu), "has-decorations");
511 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), decorations);
512
513 /*509 /*
514 * There are two modes of operation: a normal mode and a 'stealth' mode.510 * There are two modes of operation: a normal mode and a 'stealth' mode.
515 * If decorations are disabled, we also don't show up in the taskbar or pager. 511 * If decorations are disabled, we also don't show up in the taskbar or pager.
@@ -535,12 +531,6 @@
535 gboolean has_toolbar, autohide_toolbar;531 gboolean has_toolbar, autohide_toolbar;
536 g_object_get (pad->priv->settings, "has-toolbar", &has_toolbar, "autohide-toolbar", &autohide_toolbar, NULL);532 g_object_get (pad->priv->settings, "has-toolbar", &has_toolbar, "autohide-toolbar", &autohide_toolbar, NULL);
537533
538 /* Update pad menu with the new status */
539 GtkWidget *menu_item = g_object_get_data (G_OBJECT (pad->priv->menu), "has-toolbar");
540 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), has_toolbar);
541 menu_item = g_object_get_data (G_OBJECT (pad->priv->menu), "has-autohide-toolbar");
542 gtk_widget_set_sensitive (menu_item, has_toolbar);
543
544 if (has_toolbar && !autohide_toolbar)534 if (has_toolbar && !autohide_toolbar)
545 xpad_pad_show_toolbar (pad);535 xpad_pad_show_toolbar (pad);
546 else536 else
@@ -553,10 +543,6 @@
553 gboolean autohide_toolbar;543 gboolean autohide_toolbar;
554 g_object_get (pad->priv->settings, "autohide-toolbar", &autohide_toolbar, NULL);544 g_object_get (pad->priv->settings, "autohide-toolbar", &autohide_toolbar, NULL);
555545
556 /* Update pad menu with the new status */
557 GtkWidget *menu_item = g_object_get_data (G_OBJECT (pad->priv->menu), "has-autohide-toolbar");
558 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), autohide_toolbar);
559
560 if (autohide_toolbar)546 if (autohide_toolbar)
561 {547 {
562 /* Likely not to be in pad when turning setting on */548 /* Likely not to be in pad when turning setting on */
@@ -579,10 +565,6 @@
579 gboolean has_scrollbar;565 gboolean has_scrollbar;
580 g_object_get (pad->priv->settings, "has-scrollbar", &has_scrollbar, NULL);566 g_object_get (pad->priv->settings, "has-scrollbar", &has_scrollbar, NULL);
581567
582 /* Update pad menu with the new status */
583 GtkWidget *menu_item = g_object_get_data (G_OBJECT (pad->priv->menu), "has-scrollbar");
584 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), has_scrollbar);
585
586 if (has_scrollbar)568 if (has_scrollbar)
587 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (pad->priv->scrollbar),569 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (pad->priv->scrollbar),
588 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);570 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
@@ -892,7 +874,7 @@
892 if (!pad->priv->properties)874 if (!pad->priv->properties)
893 return;875 return;
894876
895 title = g_strdup_printf (_("'%s' Properties"), gtk_window_get_title (GTK_WINDOW (pad)));877 title = g_strdup_printf (_("'%s' Layout"), gtk_window_get_title (GTK_WINDOW (pad)));
896 gtk_window_set_title (GTK_WINDOW (pad->priv->properties), title);878 gtk_window_set_title (GTK_WINDOW (pad->priv->properties), title);
897 g_free (title);879 g_free (title);
898}880}
@@ -1304,38 +1286,6 @@
1304 gtk_widget_override_background_color (pad->priv->textview, GTK_STATE_FLAG_SELECTED, &text_color);1286 gtk_widget_override_background_color (pad->priv->textview, GTK_STATE_FLAG_SELECTED, &text_color);
1305 }1287 }
13061288
1307 /*
1308 * Find the sticky notes menu setting for this pad (which is on the global default),
1309 * and change its setting to the setting from the info file (pad specific default).
1310 */
1311 if (GTK_IS_CONTAINER (pad->priv->menu)) {
1312 GObject *obj;
1313 GList *elem, *children;
1314 children = gtk_container_get_children (GTK_CONTAINER (pad->priv->menu));
1315
1316 for (elem = children; elem; elem = elem->next) {
1317 obj = (GObject *) elem->data;
1318
1319 if (GTK_IS_BIN (obj) && GTK_IS_MENU_ITEM (obj)) {
1320 GList *elem2, *children2;
1321 children2 = gtk_container_get_children (GTK_CONTAINER (gtk_menu_item_get_submenu (GTK_MENU_ITEM(obj))));
1322 for(elem2 = children2; elem2; elem2 = elem2->next) {
1323 obj = (GObject *) elem2->data;
1324 if (GTK_IS_CHECK_MENU_ITEM (obj)) {
1325 if (!g_strcmp0(gtk_menu_item_get_label (GTK_MENU_ITEM (obj)), "Show on _All Workspaces")) {
1326 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (obj), pad->priv->sticky);
1327 break;
1328 }
1329 }
1330 }
1331 g_list_free(elem2);
1332 }
1333 }
1334 g_list_free(elem);
1335 }
1336 else
1337 g_warning("For some reason the variable pad->priv->menu is not a container. This results in not having a unique sticky setting for this pad. Falling back to the global sticky setting. Please send a bugreport.");
1338
1339 if (pad->priv->sticky)1289 if (pad->priv->sticky)
1340 gtk_window_stick (GTK_WINDOW (pad));1290 gtk_window_stick (GTK_WINDOW (pad));
1341 else1291 else
@@ -1537,45 +1487,6 @@
1537 menu_toggle_tag (pad, "strikethrough");1487 menu_toggle_tag (pad, "strikethrough");
1538}1488}
15391489
1540/*
1541 * Make the pad visually stick to the workspace and save this setting to the individual pad info file,
1542 * because this function has been probably been called, because of a menu toggle.
1543 */
1544static void
1545menu_sticky (GtkCheckMenuItem *check, XpadPad *pad)
1546{
1547 pad->priv->sticky = gtk_check_menu_item_get_active (check);
1548 if (pad->priv->sticky)
1549 gtk_window_stick (GTK_WINDOW (pad));
1550 else
1551 gtk_window_unstick (GTK_WINDOW (pad));
1552 xpad_pad_save_info_delayed (pad);
1553}
1554
1555static void
1556menu_toolbar (GtkCheckMenuItem *check, XpadPad *pad)
1557{
1558 g_object_set (pad->priv->settings, "has-toolbar", gtk_check_menu_item_get_active (check), NULL);
1559}
1560
1561static void
1562menu_scrollbar (GtkCheckMenuItem *check, XpadPad *pad)
1563{
1564 g_object_set (pad->priv->settings, "has-scrollbar", gtk_check_menu_item_get_active (check), NULL);
1565}
1566
1567static void
1568menu_autohide (GtkCheckMenuItem *check, XpadPad *pad)
1569{
1570 g_object_set (pad->priv->settings, "autohide-toolbar", gtk_check_menu_item_get_active (check), NULL);
1571}
1572
1573static void
1574menu_decorated (GtkCheckMenuItem *check, XpadPad *pad)
1575{
1576 g_object_set (pad->priv->settings, "has-decorations", gtk_check_menu_item_get_active (check), NULL);
1577}
1578
1579static gint1490static gint
1580menu_title_compare (GtkWindow *a, GtkWindow *b)1491menu_title_compare (GtkWindow *a, GtkWindow *b)
1581{1492{
@@ -1625,30 +1536,14 @@
1625menu_get_popup_no_highlight (XpadPad *pad, GtkAccelGroup *accel_group)1536menu_get_popup_no_highlight (XpadPad *pad, GtkAccelGroup *accel_group)
1626{1537{
1627 GtkWidget *uppermenu, *menu, *item;1538 GtkWidget *uppermenu, *menu, *item;
1628 gboolean has_toolbar, autohide_toolbar, has_scrollbar, decorations;1539
16291540 /* Upper menu */
1630 g_object_get (pad->priv->settings,
1631 "has-toolbar", &has_toolbar,
1632 "autohide-toolbar", &autohide_toolbar,
1633 "has-decorations", &decorations,
1634 "has-scrollbar", &has_scrollbar, NULL);
1635
1636 uppermenu = gtk_menu_new ();1541 uppermenu = gtk_menu_new ();
1637 gtk_menu_set_accel_group (GTK_MENU (uppermenu), accel_group);1542 gtk_menu_set_accel_group (GTK_MENU (uppermenu), accel_group);
16381543 menu = uppermenu;
1639 /* Pad submenu */
1640 item = gtk_menu_item_new_with_mnemonic (_("_Pad"));
1641 gtk_container_add (GTK_CONTAINER (uppermenu), item);
1642 menu = gtk_menu_new ();
1643 gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), menu);
1644 MENU_ADD (_("_New"), "document-new", GDK_KEY_N, GDK_CONTROL_MASK, xpad_pad_spawn);1544 MENU_ADD (_("_New"), "document-new", GDK_KEY_N, GDK_CONTROL_MASK, xpad_pad_spawn);
1645 MENU_ADD_SEP ();1545 MENU_ADD (_("_Delete"), "edit-delete", GDK_KEY_Delete, GDK_SHIFT_MASK, xpad_pad_delete);
1646 MENU_ADD_CHECK (_("Show on _All Workspaces"), pad->priv->sticky, menu_sticky);
1647 g_object_set_data (G_OBJECT (uppermenu), "sticky", item);
1648 MENU_ADD (_("_Properties"), "document-properties", 0, 0, xpad_pad_open_properties);
1649 MENU_ADD_SEP ();
1650 MENU_ADD (_("_Close"), "window-close", 0, 0, xpad_pad_close);1546 MENU_ADD (_("_Close"), "window-close", 0, 0, xpad_pad_close);
1651 MENU_ADD (_("_Delete"), "edit-delete", GDK_KEY_Delete, GDK_SHIFT_MASK, xpad_pad_delete);
16521547
1653 /* Edit submenu */1548 /* Edit submenu */
1654 item = gtk_menu_item_new_with_mnemonic (_("_Edit"));1549 item = gtk_menu_item_new_with_mnemonic (_("_Edit"));
@@ -1662,23 +1557,11 @@
1662 MENU_ADD_SEP();1557 MENU_ADD_SEP();
1663 MENU_ADD (_("_Paste"), "edit-paste", 0, 0, xpad_pad_paste);1558 MENU_ADD (_("_Paste"), "edit-paste", 0, 0, xpad_pad_paste);
1664 g_object_set_data (G_OBJECT (uppermenu), "paste", item);1559 g_object_set_data (G_OBJECT (uppermenu), "paste", item);
1665 MENU_ADD_SEP ();1560 MENU_ADD_SEP();
1666 MENU_ADD (_("_Preferences"), "preferences-system", 0, 0, xpad_pad_open_preferences);1561 MENU_ADD (_("_Layout"), "document-properties", 0, 0, xpad_pad_open_properties);
16671562
1668 /* View submenu */1563 menu = uppermenu;
1669 item = gtk_menu_item_new_with_mnemonic (_("_View"));1564 MENU_ADD_SEP();
1670 gtk_container_add (GTK_CONTAINER (uppermenu), item);
1671 menu = gtk_menu_new ();
1672 gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), menu);
1673 MENU_ADD_CHECK (_("_Toolbar"), has_toolbar, menu_toolbar);
1674 g_object_set_data (G_OBJECT (uppermenu), "has-toolbar", item);
1675 MENU_ADD_CHECK (_("_Autohide Toolbar"), autohide_toolbar, menu_autohide);
1676 g_object_set_data (G_OBJECT (uppermenu), "has-autohide-toolbar", item);
1677 gtk_widget_set_sensitive (item, has_toolbar);
1678 MENU_ADD_CHECK (_("_Scrollbar"), has_scrollbar, menu_scrollbar);
1679 g_object_set_data (G_OBJECT (uppermenu), "has-scrollbar", item);
1680 MENU_ADD_CHECK (_("_Window Decorations"), decorations, menu_decorated);
1681 g_object_set_data (G_OBJECT (uppermenu), "has-decorations", item);
16821565
1683 /* Notes submenu - The list of notes will get added in the prep function below */1566 /* Notes submenu - The list of notes will get added in the prep function below */
1684 item = gtk_menu_item_new_with_mnemonic (_("_Notes"));1567 item = gtk_menu_item_new_with_mnemonic (_("_Notes"));
@@ -1697,6 +1580,11 @@
1697 MENU_ADD (_("_Help"), "help-browser", GDK_KEY_F1, 0, show_help);1580 MENU_ADD (_("_Help"), "help-browser", GDK_KEY_F1, 0, show_help);
1698 MENU_ADD (_("_About"), "help-about", 0, 0, menu_about);1581 MENU_ADD (_("_About"), "help-about", 0, 0, menu_about);
16991582
1583 /* Upper menu */
1584 menu = uppermenu;
1585 MENU_ADD_SEP ();
1586 MENU_ADD (_("_Preferences"), "preferences-system", 0, 0, xpad_pad_open_preferences);
1587
1700 gtk_widget_show_all (uppermenu);1588 gtk_widget_show_all (uppermenu);
17011589
1702 return uppermenu;1590 return uppermenu;
17031591
=== modified file 'src/xpad-preferences.c'
--- src/xpad-preferences.c 2014-10-02 22:45:34 +0000
+++ src/xpad-preferences.c 2014-12-21 11:27:28 +0000
@@ -49,6 +49,10 @@
49 GtkWidget *tray_click_configuration;49 GtkWidget *tray_click_configuration;
50 GtkWidget *editcheck;50 GtkWidget *editcheck;
51 GtkWidget *confirmcheck;51 GtkWidget *confirmcheck;
52 GtkWidget *has_decorations;
53 GtkWidget *has_toolbar;
54 GtkWidget *autohide_toolbar;
55 GtkWidget *has_scrollbar;
5256
53 gulong fontcheck_handler;57 gulong fontcheck_handler;
54 gulong font_handler;58 gulong font_handler;
@@ -65,6 +69,10 @@
65 gulong tray_click_handler;69 gulong tray_click_handler;
66 gulong editcheck_handler;70 gulong editcheck_handler;
67 gulong confirmcheck_handler;71 gulong confirmcheck_handler;
72 gulong has_decorations_handler;
73 gulong has_toolbar_handler;
74 gulong autohide_toolbar_handler;
75 gulong has_scrollbar_handler;
6876
69 gulong notify_font_handler;77 gulong notify_font_handler;
70 gulong notify_text_handler;78 gulong notify_text_handler;
@@ -79,6 +87,10 @@
79 gulong notify_tray_click_handler;87 gulong notify_tray_click_handler;
80 gulong notify_edit_handler;88 gulong notify_edit_handler;
81 gulong notify_confirm_handler;89 gulong notify_confirm_handler;
90 gulong notify_has_decorations_handler;
91 gulong notify_has_toolbar_handler;
92 gulong notify_autohide_toolbar_handler;
93 gulong notify_has_scrollbar_handler;
82};94};
8395
84G_DEFINE_TYPE_WITH_PRIVATE (XpadPreferences, xpad_preferences, GTK_TYPE_DIALOG)96G_DEFINE_TYPE_WITH_PRIVATE (XpadPreferences, xpad_preferences, GTK_TYPE_DIALOG)
@@ -104,6 +116,10 @@
104static void change_tray_click (GtkComboBox *box, XpadPreferences *pref);116static void change_tray_click (GtkComboBox *box, XpadPreferences *pref);
105static void change_edit_check (GtkToggleButton *button, XpadPreferences *pref);117static void change_edit_check (GtkToggleButton *button, XpadPreferences *pref);
106static void change_confirm_check (GtkToggleButton *button, XpadPreferences *pref);118static void change_confirm_check (GtkToggleButton *button, XpadPreferences *pref);
119static void change_has_decorations (GtkToggleButton *button, XpadPreferences *pref);
120static void change_has_toolbar (GtkToggleButton *button, XpadPreferences *pref);
121static void change_autohide_toolbar (GtkToggleButton *button, XpadPreferences *pref);
122static void change_has_scrollbar (GtkToggleButton *button, XpadPreferences *pref);
107123
108static void notify_fontname (XpadPreferences *pref);124static void notify_fontname (XpadPreferences *pref);
109static void notify_text_color (XpadPreferences *pref);125static void notify_text_color (XpadPreferences *pref);
@@ -118,6 +134,10 @@
118static void notify_tray_click (XpadPreferences *pref);134static void notify_tray_click (XpadPreferences *pref);
119static void notify_edit (XpadPreferences *pref);135static void notify_edit (XpadPreferences *pref);
120static void notify_confirm (XpadPreferences *pref);136static void notify_confirm (XpadPreferences *pref);
137static void notify_has_decorations(XpadPreferences *pref);
138static void notify_has_toolbar(XpadPreferences *pref);
139static void notify_autohide_toolbar(XpadPreferences *pref);
140static void notify_has_scrollbar(XpadPreferences *pref);
121141
122static GtkWidget * create_label (const gchar *label_text);142static GtkWidget * create_label (const gchar *label_text);
123143
@@ -169,8 +189,8 @@
169{189{
170 XpadPreferences *pref = XPAD_PREFERENCES (object);190 XpadPreferences *pref = XPAD_PREFERENCES (object);
171191
172 GtkWidget *appearance_frame, *start_frame, *tray_frame, *other_frame, *label, *alignment;192 GtkWidget *view_frame, *appearance_frame, *start_frame, *tray_frame, *other_frame, *label, *alignment;
173 GtkBox *font_hbox, *vbox, *hbox, *appearance_vbox, *autostart_vbox, *tray_vbox, *other_vbox;193 GtkBox *font_hbox, *vbox, *hbox, *view_vbox, *appearance_vbox, *autostart_vbox, *tray_vbox, *other_vbox;
174 const GdkRGBA *text_color, *back_color;194 const GdkRGBA *text_color, *back_color;
175 const gchar *fontname;195 const gchar *fontname;
176 GtkStyleContext *style;196 GtkStyleContext *style;
@@ -178,7 +198,7 @@
178 GtkRequisition req;198 GtkRequisition req;
179 GdkRGBA theme_text_color = {0, 0, 0, 0}, theme_background_color = {0, 0, 0, 0};199 GdkRGBA theme_text_color = {0, 0, 0, 0}, theme_background_color = {0, 0, 0, 0};
180 guint tray_click_configuration, autostart_delay, autostart_display_pads;200 guint tray_click_configuration, autostart_delay, autostart_display_pads;
181 gboolean confirm_destroy, edit_lock, autostart_xpad, autostart_wait_systray, autostart_new_pad, autostart_sticky;201 gboolean confirm_destroy, edit_lock, autostart_xpad, autostart_wait_systray, autostart_new_pad, autostart_sticky, has_decorations, has_toolbar, autohide_toolbar, has_scrollbar;
182202
183 g_object_get (pref->priv->settings,203 g_object_get (pref->priv->settings,
184 "fontname", &fontname,204 "fontname", &fontname,
@@ -193,13 +213,61 @@
193 "autostart-sticky", &autostart_sticky,213 "autostart-sticky", &autostart_sticky,
194 "autostart-delay", &autostart_delay,214 "autostart-delay", &autostart_delay,
195 "autostart-display-pads", &autostart_display_pads,215 "autostart-display-pads", &autostart_display_pads,
216 "has-decorations", &has_decorations,
217 "has-toolbar", &has_toolbar,
218 "autohide-toolbar", &autohide_toolbar,
219 "has-scrollbar", &has_scrollbar,
196 NULL);220 NULL);
197221
198 /* create notebook to add pages */222 /* create notebook to add pages */
199 pref->priv->notebook = gtk_notebook_new ();223 pref->priv->notebook = gtk_notebook_new ();
200224
201 /* Appearance options */225 /* View options */
202 label = create_label (_("Appearance"));226 label = create_label (_("View"));
227
228 view_vbox = GTK_BOX (gtk_box_new (GTK_ORIENTATION_VERTICAL, 20));
229 gtk_box_set_homogeneous (view_vbox, FALSE);
230
231 alignment = gtk_alignment_new (1, 1, 1, 1);
232 g_object_set (G_OBJECT (alignment),
233 "left-padding", 12,
234 "top-padding", 12,
235 "child", view_vbox,
236 NULL);
237 view_frame = GTK_WIDGET (g_object_new (GTK_TYPE_FRAME,
238 "label-widget", NULL,
239 "shadow-type", GTK_SHADOW_NONE,
240 "child", alignment,
241 NULL));
242
243 gtk_notebook_append_page (GTK_NOTEBOOK (pref->priv->notebook), GTK_WIDGET (view_frame), label);
244
245 pref->priv->has_toolbar = gtk_check_button_new_with_mnemonic (_("_Show toolbar"));
246 gtk_box_pack_start (view_vbox, pref->priv->has_toolbar, FALSE, FALSE, 0);
247 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->has_toolbar), has_toolbar);
248
249 pref->priv->autohide_toolbar = gtk_check_button_new_with_mnemonic (_("_Autohide toolbar"));
250 hbox = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 20));
251 gtk_box_pack_start (hbox, gtk_alignment_new (1, 1, 1, 1), FALSE, FALSE, 0);
252 gtk_box_pack_start (hbox, pref->priv->autohide_toolbar, FALSE, FALSE, 0);
253 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->autohide_toolbar), autohide_toolbar);
254 gtk_widget_set_sensitive (pref->priv->autohide_toolbar, has_toolbar);
255 gtk_box_pack_start (view_vbox, GTK_WIDGET (hbox), FALSE, FALSE, 0);
256
257 pref->priv->has_scrollbar = gtk_check_button_new_with_mnemonic (_("_Show scrollbar"));
258 gtk_box_pack_start (view_vbox, pref->priv->has_scrollbar, FALSE, FALSE, 0);
259 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->has_scrollbar), has_scrollbar);
260
261 pref->priv->autostart_sticky = gtk_check_button_new_with_mnemonic (_("_Show notes on all workspaces"));
262 gtk_box_pack_start (view_vbox, pref->priv->autostart_sticky, FALSE, FALSE, 0);
263 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->autostart_sticky), autostart_sticky);
264
265 pref->priv->has_decorations = gtk_check_button_new_with_mnemonic (_("_Show window decorations"));
266 gtk_box_pack_start (view_vbox, pref->priv->has_decorations, FALSE, FALSE, 0);
267 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->has_decorations), has_decorations);
268
269 /* Layout options */
270 label = create_label (_("Layout"));
203271
204 appearance_vbox = GTK_BOX (gtk_box_new (GTK_ORIENTATION_VERTICAL, 20));272 appearance_vbox = GTK_BOX (gtk_box_new (GTK_ORIENTATION_VERTICAL, 20));
205 gtk_box_set_homogeneous (appearance_vbox, FALSE);273 gtk_box_set_homogeneous (appearance_vbox, FALSE);
@@ -353,10 +421,6 @@
353 gtk_box_pack_start (autostart_vbox, pref->priv->autostart_new_pad, FALSE, FALSE, 0);421 gtk_box_pack_start (autostart_vbox, pref->priv->autostart_new_pad, FALSE, FALSE, 0);
354 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->autostart_new_pad), autostart_new_pad);422 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->autostart_new_pad), autostart_new_pad);
355423
356 pref->priv->autostart_sticky = gtk_check_button_new_with_mnemonic (_("_Pads start on all workspaces"));
357 gtk_box_pack_start (autostart_vbox, pref->priv->autostart_sticky, FALSE, FALSE, 0);
358 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->autostart_sticky), autostart_sticky);
359
360 label = gtk_label_new (_("Delay in seconds"));424 label = gtk_label_new (_("Delay in seconds"));
361 pref->priv->autostart_delay = gtk_combo_box_text_new();425 pref->priv->autostart_delay = gtk_combo_box_text_new();
362 guint i;426 guint i;
@@ -450,6 +514,11 @@
450 gtk_window_set_title (GTK_WINDOW (pref), _("Xpad Preferences"));514 gtk_window_set_title (GTK_WINDOW (pref), _("Xpad Preferences"));
451515
452 /* Activate all handlers */516 /* Activate all handlers */
517 pref->priv->has_decorations_handler = g_signal_connect (pref->priv->has_decorations, "toggled", G_CALLBACK (change_has_decorations), pref);
518 pref->priv->has_toolbar_handler = g_signal_connect (pref->priv->has_toolbar, "toggled", G_CALLBACK (change_has_toolbar), pref);
519 pref->priv->autohide_toolbar_handler = g_signal_connect (pref->priv->autohide_toolbar, "toggled", G_CALLBACK (change_autohide_toolbar), pref);
520 pref->priv->has_scrollbar_handler = g_signal_connect (pref->priv->has_scrollbar, "toggled", G_CALLBACK (change_has_scrollbar), pref);
521
453 pref->priv->fontcheck_handler = g_signal_connect (pref->priv->fontcheck, "toggled", G_CALLBACK (change_font_check), pref);522 pref->priv->fontcheck_handler = g_signal_connect (pref->priv->fontcheck, "toggled", G_CALLBACK (change_font_check), pref);
454 pref->priv->font_handler = g_signal_connect (pref->priv->fontbutton, "font-set", G_CALLBACK (change_font_face), pref);523 pref->priv->font_handler = g_signal_connect (pref->priv->fontbutton, "font-set", G_CALLBACK (change_font_face), pref);
455 pref->priv->colorcheck_handler = g_signal_connect (pref->priv->colorcheck, "toggled", G_CALLBACK (change_color_check), pref);524 pref->priv->colorcheck_handler = g_signal_connect (pref->priv->colorcheck, "toggled", G_CALLBACK (change_color_check), pref);
@@ -468,6 +537,11 @@
468 pref->priv->editcheck_handler = g_signal_connect (pref->priv->editcheck, "toggled", G_CALLBACK (change_edit_check), pref);537 pref->priv->editcheck_handler = g_signal_connect (pref->priv->editcheck, "toggled", G_CALLBACK (change_edit_check), pref);
469 pref->priv->confirmcheck_handler = g_signal_connect (pref->priv->confirmcheck, "toggled", G_CALLBACK (change_confirm_check), pref);538 pref->priv->confirmcheck_handler = g_signal_connect (pref->priv->confirmcheck, "toggled", G_CALLBACK (change_confirm_check), pref);
470539
540 pref->priv->notify_has_decorations_handler = g_signal_connect_swapped (pref->priv->settings, "notify::has-decorations", G_CALLBACK (notify_has_decorations), pref);
541 pref->priv->notify_has_toolbar_handler = g_signal_connect_swapped (pref->priv->settings, "notify::has-toolbar", G_CALLBACK (notify_has_toolbar), pref);
542 pref->priv->notify_autohide_toolbar_handler = g_signal_connect_swapped (pref->priv->settings, "notify::autohide-toolbar", G_CALLBACK (notify_autohide_toolbar), pref);
543 pref->priv->notify_has_scrollbar_handler = g_signal_connect_swapped (pref->priv->settings, "notify::has-scrollbar", G_CALLBACK (notify_has_scrollbar), pref);
544
471 pref->priv->notify_font_handler = g_signal_connect_swapped (pref->priv->settings, "notify::fontname", G_CALLBACK (notify_fontname), pref);545 pref->priv->notify_font_handler = g_signal_connect_swapped (pref->priv->settings, "notify::fontname", G_CALLBACK (notify_fontname), pref);
472 pref->priv->notify_text_handler = g_signal_connect_swapped (pref->priv->settings, "notify::text-color", G_CALLBACK (notify_text_color), pref);546 pref->priv->notify_text_handler = g_signal_connect_swapped (pref->priv->settings, "notify::text-color", G_CALLBACK (notify_text_color), pref);
473 pref->priv->notify_back_handler = g_signal_connect_swapped (pref->priv->settings, "notify::back-color", G_CALLBACK (notify_back_color), pref);547 pref->priv->notify_back_handler = g_signal_connect_swapped (pref->priv->settings, "notify::back-color", G_CALLBACK (notify_back_color), pref);
@@ -737,6 +811,36 @@
737}811}
738812
739static void813static void
814change_has_decorations (GtkToggleButton *button, XpadPreferences *pref)
815{
816 g_signal_handler_block (pref->priv->settings, pref->priv->notify_has_decorations_handler);
817 g_object_set (pref->priv->settings, "has-decorations", gtk_toggle_button_get_active (button), NULL);
818 g_signal_handler_unblock (pref->priv->settings, pref->priv->notify_has_decorations_handler);
819}
820
821static void
822change_has_toolbar (GtkToggleButton *button, XpadPreferences *pref)
823{
824 g_object_set (pref->priv->settings, "has-toolbar", gtk_toggle_button_get_active (button), NULL);
825}
826
827static void
828change_autohide_toolbar (GtkToggleButton *button, XpadPreferences *pref)
829{
830 g_signal_handler_block (pref->priv->settings, pref->priv->notify_autohide_toolbar_handler);
831 g_object_set (pref->priv->settings, "autohide-toolbar", gtk_toggle_button_get_active (button), NULL);
832 g_signal_handler_unblock (pref->priv->settings, pref->priv->notify_autohide_toolbar_handler);
833}
834
835static void
836change_has_scrollbar (GtkToggleButton *button, XpadPreferences *pref)
837{
838 g_signal_handler_block (pref->priv->settings, pref->priv->notify_has_scrollbar_handler);
839 g_object_set (pref->priv->settings, "has-scrollbar", gtk_toggle_button_get_active (button), NULL);
840 g_signal_handler_unblock (pref->priv->settings, pref->priv->notify_has_scrollbar_handler);
841}
842
843static void
740notify_fontname (XpadPreferences *pref)844notify_fontname (XpadPreferences *pref)
741{845{
742 const gchar *fontname;846 const gchar *fontname;
@@ -918,3 +1022,44 @@
918 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->confirmcheck), value);1022 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->confirmcheck), value);
919 g_signal_handler_unblock (pref->priv->confirmcheck, pref->priv->confirmcheck_handler);1023 g_signal_handler_unblock (pref->priv->confirmcheck, pref->priv->confirmcheck_handler);
920}1024}
1025
1026static void
1027notify_has_decorations (XpadPreferences *pref)
1028{
1029 gboolean value;
1030 g_object_get (pref->priv->settings, "has-decorations", &value, NULL);
1031 g_signal_handler_block (pref->priv->has_decorations, pref->priv->has_decorations_handler);
1032 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->has_decorations), value);
1033 g_signal_handler_unblock (pref->priv->has_decorations, pref->priv->has_decorations_handler);
1034}
1035
1036static void
1037notify_has_toolbar (XpadPreferences *pref)
1038{
1039 gboolean value;
1040 g_object_get (pref->priv->settings, "has-toolbar", &value, NULL);
1041 g_signal_handler_block (pref->priv->has_toolbar, pref->priv->has_toolbar_handler);
1042 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->has_toolbar), value);
1043 gtk_widget_set_sensitive (pref->priv->autohide_toolbar, value);
1044 g_signal_handler_unblock (pref->priv->has_toolbar, pref->priv->has_toolbar_handler);
1045}
1046
1047static void
1048notify_autohide_toolbar (XpadPreferences *pref)
1049{
1050 gboolean value;
1051 g_object_get (pref->priv->settings, "autohide-toolbar", &value, NULL);
1052 g_signal_handler_block (pref->priv->autohide_toolbar, pref->priv->autohide_toolbar_handler);
1053 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->autohide_toolbar), value);
1054 g_signal_handler_unblock (pref->priv->autohide_toolbar, pref->priv->autohide_toolbar_handler);
1055}
1056
1057static void
1058notify_has_scrollbar (XpadPreferences *pref)
1059{
1060 gboolean value;
1061 g_object_get (pref->priv->settings, "has-scrollbar", &value, NULL);
1062 g_signal_handler_block (pref->priv->has_scrollbar, pref->priv->has_scrollbar_handler);
1063 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->has_scrollbar), value);
1064 g_signal_handler_unblock (pref->priv->has_scrollbar, pref->priv->has_scrollbar_handler);
1065}

Subscribers

People subscribed via source and target branches