[Goodies-commits] r1786 - xfce4-notes-plugin/trunk/panel-plugin

Mike Massonnet mmassonnet at xfce.org
Mon Jul 24 21:54:51 CEST 2006


Author: mmassonnet
Date: 2006-07-24 19:54:50 +0000 (Mon, 24 Jul 2006)
New Revision: 1786

Modified:
   xfce4-notes-plugin/trunk/panel-plugin/note.h
Log:
 * Smaller icons
 * Word wrap
 * Changed the organization of the window
 * Shade on mouse scroll over title bar
(ps: save ontimeout was wrong in the previous-previous log)


Modified: xfce4-notes-plugin/trunk/panel-plugin/note.h
===================================================================
--- xfce4-notes-plugin/trunk/panel-plugin/note.h	2006-07-24 19:49:46 UTC (rev 1785)
+++ xfce4-notes-plugin/trunk/panel-plugin/note.h	2006-07-24 19:54:50 UTC (rev 1786)
@@ -45,7 +45,8 @@
 
 Note *          note_new (XfcePanelPlugin *);
 static gboolean on_note_delete ();
-static gboolean on_window_move (GtkWidget *, GdkEventButton *, GtkWindow *);
+static gboolean on_title_press (GtkWidget *, GdkEventButton *, GtkWindow *);
+static gboolean on_title_scroll (GtkWidget *, GdkEventScroll *, Note *);
 static void     note_load_data (XfcePanelPlugin *, Note *);
 
 Note *
@@ -57,19 +58,21 @@
 
     note = g_new0 (Note, 1);
 
+
     /* Window */
     note->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
     
     gtk_window_set_default_size (GTK_WINDOW (note->window), 242, 200);
     gtk_window_set_decorated (GTK_WINDOW (note->window), FALSE);
-    gtk_window_set_skip_pager_hint (GTK_WINDOW (note->window), TRUE);
-    gtk_window_set_skip_taskbar_hint (GTK_WINDOW (note->window), TRUE);
+    gtk_window_set_skip_pager_hint (GTK_WINDOW (note->window), FALSE);
+    gtk_window_set_skip_taskbar_hint (GTK_WINDOW (note->window), FALSE);
     gtk_window_set_icon_name (GTK_WINDOW (note->window), GTK_STOCK_EDIT);
 
     /* Prevent close window (Alt-F4) */
     g_signal_connect (note->window, "delete-event", G_CALLBACK (on_note_delete),
                       NULL);
 
+
     /* Frame */
     note->frame = gtk_frame_new (NULL);
     gtk_widget_show (note->frame);
@@ -77,12 +80,15 @@
     gtk_frame_set_shadow_type (GTK_FRAME (note->frame), GTK_SHADOW_OUT);
     gtk_container_add (GTK_CONTAINER (note->window), note->frame);
 
+
     /* Vertical box */
     note->vbox = gtk_vbox_new (FALSE, 0);
     gtk_widget_show (note->vbox);
 
+    gtk_box_set_spacing (GTK_BOX (note->vbox), 2);
     gtk_container_add (GTK_CONTAINER (note->frame), note->vbox);
 
+
     /* Horizontal box: icon + title + close button */
     note->hbox = gtk_hbox_new (FALSE, 2);
     gtk_widget_show (note->hbox);
@@ -91,7 +97,7 @@
 
     /* Icon */
     note->icon = gtk_image_new_from_stock (GTK_STOCK_EDIT, 
-                                           GTK_ICON_SIZE_BUTTON);
+                                           GTK_ICON_SIZE_MENU);
     gtk_widget_show (note->icon);
 
     gtk_box_pack_start (GTK_BOX (note->hbox), note->icon, FALSE, FALSE, 0);
@@ -102,8 +108,12 @@
 
     gtk_box_pack_start (GTK_BOX (note->hbox), note->move_event_box, TRUE, TRUE,
                         0);
-    g_signal_connect (G_OBJECT (note->move_event_box), "button_press_event",
-                      G_CALLBACK (on_window_move), note->window);
+    g_signal_connect (G_OBJECT (note->move_event_box), "button-press-event",
+                      G_CALLBACK (on_title_press), note->window);
+
+    g_signal_connect (G_OBJECT (note->move_event_box), "scroll-event",
+                      G_CALLBACK (on_title_scroll), note);
+
     gtk_widget_realize (note->move_event_box);
 
     note->title = gtk_label_new (_("Notes"));
@@ -115,28 +125,35 @@
     note->close_button = xfce_create_panel_button ();
     gtk_widget_show (note->close_button);
 
+    gtk_widget_set_size_request (note->close_button, 16, 16);
     gtk_box_pack_start (GTK_BOX (note->hbox), note->close_button, FALSE, FALSE,
                         0);
 
     note->close_icon = gtk_image_new_from_stock (GTK_STOCK_CLOSE, 
-                                                 GTK_ICON_SIZE_BUTTON);
+                                                 GTK_ICON_SIZE_MENU);
     gtk_widget_show (note->close_icon);
 
     gtk_container_add (GTK_CONTAINER (note->close_button), note->close_icon);
 
+
     /* Scrolled window + Text view */
     note->scroll = gtk_scrolled_window_new (NULL, NULL);
     gtk_widget_show (note->scroll);
 
+    gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (note->scroll),
+                                         GTK_SHADOW_IN);
     gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (note->scroll), 
                                     GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
     gtk_box_pack_start (GTK_BOX (note->vbox), note->scroll, TRUE, TRUE, 0);
 
+    /* Text view */
     note->text = gtk_text_view_new ();
     gtk_widget_show (note->text);
 
+    gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (note->text), GTK_WRAP_WORD);
     gtk_container_add (GTK_CONTAINER (note->scroll), note->text);
 
+
     /* Load the data */
     note_load_data (plugin, note);
 
@@ -151,15 +168,42 @@
 }
 
 static gboolean
-on_window_move (GtkWidget *widget, GdkEventButton *event, GtkWindow *window)
+on_title_press (GtkWidget *widget, GdkEventButton *event, GtkWindow *window)
 {
     if (event->type == GDK_BUTTON_PRESS && event->button == 1)
+        /* Move the window */
         gtk_window_begin_move_drag (window, event->button, event->x_root, 
                                     event->y_root, event->time);
 
     return FALSE;
 }
 
+static gboolean
+on_title_scroll (GtkWidget *widget, GdkEventScroll *event, Note *note)
+{
+    gint width, height;
+
+    gtk_window_get_default_size (GTK_WINDOW  (note->window), &width, &height);
+
+    if (event->type == GDK_SCROLL)
+      {
+        if (event->direction == GDK_SCROLL_UP)
+          {
+            /* Hide the text view */
+            gtk_widget_hide (note->scroll);
+            gtk_window_resize (GTK_WINDOW (note->window), width, 1);
+          }
+        else if (event->direction == GDK_SCROLL_DOWN)
+          {
+            /* Show the text view */
+            gtk_widget_show (note->scroll);
+            gtk_window_resize (GTK_WINDOW (note->window), width, height);
+          }
+      }
+
+    return FALSE;
+}
+
 static void
 note_load_data (XfcePanelPlugin *plugin, Note *note)
 {




More information about the Goodies-commits mailing list