[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