r16477 - gnucash/trunk/src/register/register-gnome - Bug#343448: hide unused scrollbars in register; patch from Michael Culbertson <michael.culbertson gmail com>.

Josh Sled jsled at cvs.gnucash.org
Mon Aug 27 20:07:38 EDT 2007


Author: jsled
Date: 2007-08-27 20:07:37 -0400 (Mon, 27 Aug 2007)
New Revision: 16477
Trac: http://svn.gnucash.org/trac/changeset/16477

Modified:
   gnucash/trunk/src/register/register-gnome/gnucash-sheet.c
   gnucash/trunk/src/register/register-gnome/gnucash-sheet.h
Log:
Bug#343448: hide unused scrollbars in register; patch from Michael Culbertson <michael.culbertson gmail com>.


Modified: gnucash/trunk/src/register/register-gnome/gnucash-sheet.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-sheet.c	2007-08-27 23:22:16 UTC (rev 16476)
+++ gnucash/trunk/src/register/register-gnome/gnucash-sheet.c	2007-08-28 00:07:37 UTC (rev 16477)
@@ -555,6 +555,34 @@
 }
 
 
+static void
+gnucash_sheet_hadjustment_changed (GtkAdjustment *adj,
+                                   GnucashSheet *sheet)
+{
+        GnucashRegister *reg;
+
+        g_return_if_fail (sheet != NULL);
+        g_return_if_fail (GNUCASH_IS_SHEET(sheet));
+        reg = GNUCASH_REGISTER(sheet->reg);
+        g_return_if_fail (reg != NULL);
+
+        if (adj->upper - adj->lower > adj->page_size)
+        {
+                if (!reg->hscrollbar_visible)
+                {
+                        gtk_widget_show(reg->hscrollbar);
+                        reg->hscrollbar_visible = TRUE;
+                }
+        } else {
+                if (reg->hscrollbar_visible)
+                {
+                        gtk_widget_hide(reg->hscrollbar);
+                        reg->hscrollbar_visible = FALSE;
+                }
+        }
+}
+
+
 void
 gnucash_sheet_redraw_all (GnucashSheet *sheet)
 {
@@ -657,6 +685,8 @@
 
         g_signal_connect (G_OBJECT (sheet->vadj), "value_changed",
                 G_CALLBACK (gnucash_sheet_vadjustment_value_changed), sheet);
+        g_signal_connect (G_OBJECT (sheet->hadj), "changed",
+                G_CALLBACK (gnucash_sheet_hadjustment_changed), sheet);
 
         return sheet;
 }
@@ -2599,6 +2629,7 @@
                           0, 0);
         reg->hscrollbar = scrollbar;
         gtk_widget_show(scrollbar);
+        reg->hscrollbar_visible = TRUE;
 
 	/* The gtkrc color helper widgets need to be part of a window
 	 * hierarchy so they can be realized. Stick them in a box

Modified: gnucash/trunk/src/register/register-gnome/gnucash-sheet.h
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-sheet.h	2007-08-27 23:22:16 UTC (rev 16476)
+++ gnucash/trunk/src/register/register-gnome/gnucash-sheet.h	2007-08-28 00:07:37 UTC (rev 16477)
@@ -137,6 +137,7 @@
         GtkWidget *hscrollbar;
         GtkWidget *sheet;
         GtkWidget *header_canvas;
+        gboolean  hscrollbar_visible;
 } GnucashRegister;
 
 



More information about the gnucash-changes mailing list