[solang] Moved the UI controls away from the PaginationBar to other locations



commit 8000af9093594e188167753a22a160047ff8e2dc
Author: Debarshi Ray <rishi gnu org>
Date:   Thu Jan 21 15:11:08 2010 +0200

    Moved the UI controls away from the PaginationBar to other locations
    
    The PaginationBar no longer provides any UI elements. It only deals
    with providing the abstraction of having multiple pages within the
    browser and managing movement from one page to another. The previous
    and next buttons are now part of the main Gtk::Toolbar, while the
    string describing the current page is now shown in the main
    Gtk::Statusbar. This makes the code and UI more consistent and saves
    some space.

 data/solang-browser-renderer.ui   |    4 +
 po/POTFILES.in                    |    1 -
 src/application/main-window.cpp   |    6 +
 src/application/main-window.h     |    3 +
 src/renderer/browser-renderer.cpp |  144 ++++++++++++++++++++--
 src/renderer/browser-renderer.h   |   20 +++
 src/renderer/pagination-bar.cpp   |  245 +++++++++----------------------------
 src/renderer/pagination-bar.h     |   74 +++---------
 8 files changed, 238 insertions(+), 259 deletions(-)
---
diff --git a/data/solang-browser-renderer.ui b/data/solang-browser-renderer.ui
index 2481c98..adb1c10 100644
--- a/data/solang-browser-renderer.ui
+++ b/data/solang-browser-renderer.ui
@@ -21,6 +21,10 @@
 		</placeholder>
 	</menubar>
 	<toolbar name="ToolBar">
+		<placeholder name="PlaceholderGoToolBar">
+		<toolitem action="ActionGoBrowserPreviousPage"/>
+		<toolitem action="ActionGoBrowserNextPage"/>
+		</placeholder>
 		<placeholder name="PlaceholderFullScreenToolBar">
 		<toolitem action="ActionViewBrowserSlideshow"/>
 		</placeholder>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 981eb7b..b218418 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -23,6 +23,5 @@ src/exporter/directory-destination.cpp
 src/exporter/exporter-dialog.cpp
 src/renderer/browser-renderer.cpp
 src/renderer/enlarged-renderer.cpp
-src/renderer/pagination-bar.cpp
 src/renderer/slideshow-renderer.cpp
 src/renderer/slideshow-window.cpp
diff --git a/src/application/main-window.cpp b/src/application/main-window.cpp
index 82046ed..53dede5 100644
--- a/src/application/main-window.cpp
+++ b/src/application/main-window.cpp
@@ -496,6 +496,12 @@ MainWindow::get_notebook_center() throw()
     return parent;
 }
 
+Gtk::Statusbar &
+MainWindow::get_status_bar() throw()
+{
+    return statusBar_;
+}
+
 const UIManagerPtr &
 MainWindow::get_ui_manager() throw()
 {
diff --git a/src/application/main-window.h b/src/application/main-window.h
index 4ddc4d0..49e3465 100644
--- a/src/application/main-window.h
+++ b/src/application/main-window.h
@@ -71,6 +71,9 @@ class MainWindow :
         Gtk::Notebook *
         get_notebook_center() throw();
 
+        Gtk::Statusbar &
+        get_status_bar() throw();
+
         const UIManagerPtr &
         get_ui_manager() throw();
 
diff --git a/src/renderer/browser-renderer.cpp b/src/renderer/browser-renderer.cpp
index 1b50d68..83e03e0 100644
--- a/src/renderer/browser-renderer.cpp
+++ b/src/renderer/browser-renderer.cpp
@@ -21,6 +21,7 @@
 #include "config.h"
 #endif // HAVE_CONFIG_H
 
+#include <sstream>
 #include <vector>
 
 #include <glibmm/i18n.h>
@@ -88,6 +89,7 @@ BrowserRenderer::BrowserRenderer() throw() :
     thumbnailView_(thumbnailRendererWidth, thumbnailRendererHeight),
     zoomValue_(initialZoomValue),
     pageNum_(-1),
+    contextID_(),
     signalInitEnd_(),
     signalListStoreChangeBegin_(),
     signalListStoreChangeEnd_(),
@@ -197,23 +199,55 @@ BrowserRenderer::BrowserRenderer() throw() :
         Gtk::Action::create(
             "ActionBrowserGoMenu", _("_Go")));
 
-    actionGroup_->add(
-        paginationBar_.action_previous(),
-        Gtk::AccelKey("<alt>Page_Up"));
+    {
+        ActionPtr action = Gtk::Action::create(
+            "ActionGoBrowserPreviousPage", Gtk::Stock::GO_BACK,
+            _("_Previous Page"),
+            _("Go to the previous page in the collection"));
+
+        action->property_short_label().set_value(_("Previous"));
+        action->property_is_important().set_value(true);
+        action->set_sensitive(false);
+        actionGroup_->add(
+            action, Gtk::AccelKey("<alt>Page_Up"),
+            sigc::mem_fun(*this,
+                          &BrowserRenderer::on_action_go_previous));
+    }
 
-    actionGroup_->add(
-        paginationBar_.action_next(),
-        Gtk::AccelKey("<alt>Page_Down"));
+    {
+        ActionPtr action = Gtk::Action::create(
+            "ActionGoBrowserNextPage", Gtk::Stock::GO_FORWARD,
+            _("_Next Page"),
+            _("Go to the next page in the collection"));
 
-    actionGroup_->add(
-        paginationBar_.action_first(),
-        Gtk::AccelKey("<alt>Home"));
+        action->property_short_label().set_value(_("Next"));
+        action->property_is_important().set_value(true);
+        actionGroup_->add(
+            action, Gtk::AccelKey("<alt>Page_Down"),
+            sigc::mem_fun(*this,
+                          &BrowserRenderer::on_action_go_next));
+    }
 
-    actionGroup_->add(
-        paginationBar_.action_last(),
-        Gtk::AccelKey("<alt>End"));
+    {
+        ActionPtr action = Gtk::Action::create(
+            "ActionGoBrowserFirstPage", Gtk::Stock::GOTO_FIRST,
+            _("_First Page"),
+            _("Go to the first page in the collection"));
 
-    hBox_.pack_start(paginationBar_, Gtk::PACK_SHRINK, 0);
+        action->set_sensitive(false);
+        actionGroup_->add(
+            action, Gtk::AccelKey("<alt>Home"),
+            sigc::mem_fun(*this,
+                          &BrowserRenderer::on_action_go_first));
+    }
+
+    actionGroup_->add(
+        Gtk::Action::create(
+            "ActionGoBrowserLastPage", Gtk::Stock::GOTO_LAST,
+            _("_Last Page"),
+            _("Go to the last page in the collection")),
+        Gtk::AccelKey("<alt>End"),
+        sigc::mem_fun(*this, &BrowserRenderer::on_action_go_last));
 
     vBox_.pack_start(hBox_, Gtk::PACK_SHRINK, 0);
 
@@ -279,6 +313,10 @@ BrowserRenderer::init(Application & application) throw()
     MainWindow & main_window = application.get_main_window();
     main_window.add_dock_object_center(GDL_DOCK_OBJECT(dockItem_));
 
+    Gtk::Statusbar & status_bar = main_window.get_status_bar();
+    contextID_ = status_bar.get_context_id(
+                     Glib::ustring::compose("%1", G_STRLOC));
+
     const UIManagerPtr & ui_manager = main_window.get_ui_manager();
 
     uiID_ = ui_manager->add_ui_from_file(uiFile);
@@ -414,6 +452,30 @@ BrowserRenderer::on_action_add_to_export_queue() throw()
 }
 
 void
+BrowserRenderer::on_action_go_previous() throw()
+{
+    paginationBar_.go_previous();
+}
+
+void
+BrowserRenderer::on_action_go_next() throw()
+{
+    paginationBar_.go_next();
+}
+
+void
+BrowserRenderer::on_action_go_first() throw()
+{
+    paginationBar_.go_first();
+}
+
+void
+BrowserRenderer::on_action_go_last() throw()
+{
+    paginationBar_.go_last();
+}
+
+void
 BrowserRenderer::on_action_view_slideshow() throw()
 {
     RendererRegistry & renderer_registry
@@ -521,8 +583,39 @@ BrowserRenderer::on_item_activated(const Gtk::TreeModel::Path & path)
 void
 BrowserRenderer::on_limits_changed() throw()
 {
+    const guint total = paginationBar_.get_total();
+    const guint lower_limit = paginationBar_.get_lower_limit();
+    const guint upper_limit = paginationBar_.get_upper_limit();
+
+    {
+        const ActionPtr action = actionGroup_->get_action(
+                                     "ActionGoBrowserPreviousPage");
+        action->set_sensitive((0 < lower_limit) ? true : false);
+    }
+
+    {
+        const ActionPtr action = actionGroup_->get_action(
+                                     "ActionGoBrowserFirstPage");
+        action->set_sensitive((0 < lower_limit) ? true : false);
+    }
+
+    {
+        const ActionPtr action = actionGroup_->get_action(
+                                     "ActionGoBrowserNextPage");
+        action->set_sensitive((total > upper_limit) ? true : false);
+    }
+
+    {
+        const ActionPtr action = actionGroup_->get_action(
+                                     "ActionGoBrowserLastPage");
+        action->set_sensitive((total > upper_limit) ? true : false);
+    }
+
     set_thumbnail_size();
     treeModelFilter_->refilter();
+
+    status_pop();
+    status_push();
 }
 
 void
@@ -630,6 +723,7 @@ BrowserRenderer::on_switch_page(GtkNotebookPage * notebook_page,
         }
 
         signalSelectionChanged_.unblock();
+        status_push();
 
         if (0 == uiID_)
         {
@@ -652,6 +746,7 @@ BrowserRenderer::on_switch_page(GtkNotebookPage * notebook_page,
         }
 
         signalSelectionChanged_.block();
+        status_pop();
     }
 }
 
@@ -693,4 +788,27 @@ BrowserRenderer::set_thumbnail_size() throw()
     thumbnailView_.set_thumbnail_height(thumbnail_height + 6);
 }
 
+void
+BrowserRenderer::status_pop() throw()
+{
+    MainWindow & main_window = application_->get_main_window();
+    Gtk::Statusbar & status_bar = main_window.get_status_bar();
+    status_bar.pop(contextID_);
+}
+
+void
+BrowserRenderer::status_push() throw()
+{
+    const guint total = paginationBar_.get_total();
+    const guint lower_limit = paginationBar_.get_lower_limit();
+    const guint upper_limit = paginationBar_.get_upper_limit();
+
+    MainWindow & main_window = application_->get_main_window();
+    Gtk::Statusbar & status_bar = main_window.get_status_bar();
+
+    std::ostringstream sout;
+    sout << lower_limit << " - " << upper_limit << " of " << total;
+    status_bar.push(sout.str(), contextID_);
+}
+
 } // namespace Solang
diff --git a/src/renderer/browser-renderer.h b/src/renderer/browser-renderer.h
index 8be8848..b54409c 100644
--- a/src/renderer/browser-renderer.h
+++ b/src/renderer/browser-renderer.h
@@ -99,6 +99,18 @@ class BrowserRenderer :
                                 throw();
 
         void
+        on_action_go_previous() throw();
+
+        void
+        on_action_go_next() throw();
+
+        void
+        on_action_go_first() throw();
+
+        void
+        on_action_go_last() throw();
+
+        void
         on_dock_item_parent_changed(Gtk::Widget * previous_parent)
                                     throw();
 
@@ -128,6 +140,12 @@ class BrowserRenderer :
         void
         set_thumbnail_size() throw();
 
+        void
+        status_pop() throw();
+
+        void
+        status_push() throw();
+
         ApplicationPtr application_;
 
         IconFactoryPtr iconFactory_;
@@ -164,6 +182,8 @@ class BrowserRenderer :
 
         gint pageNum_;
 
+        guint contextID_;
+
         sigc::connection signalInitEnd_;
 
         sigc::connection signalItemActivated_;
diff --git a/src/renderer/pagination-bar.cpp b/src/renderer/pagination-bar.cpp
index 88e4212..671eae0 100644
--- a/src/renderer/pagination-bar.cpp
+++ b/src/renderer/pagination-bar.cpp
@@ -21,9 +21,8 @@
 #include "config.h"
 #endif
 
-#include <sstream>
+#include <cmath>
 
-#include <glibmm/i18n.h>
 #include <sigc++/sigc++.h>
 
 #include "pagination-bar.h"
@@ -32,148 +31,35 @@ namespace Solang
 {
 
 PaginationBar::PaginationBar() throw() :
-    Gtk::HBox(false, 12),
-    actionPrevious_(Gtk::Action::create(
-                        "ActionGoBrowserPreviousPage",
-                        Gtk::Stock::GO_BACK,
-                        _("_Previous Page"),
-                        _("Go to the previous page in the collection"))),
-    actionNext_(Gtk::Action::create(
-                        "ActionGoBrowserNextPage",
-                        Gtk::Stock::GO_FORWARD,
-                        _("_Next Page"),
-                        _("Go to the next page in the collection"))),
-    actionFirst_(Gtk::Action::create(
-                        "ActionGoBrowserFirstPage",
-                        Gtk::Stock::GOTO_FIRST,
-                        _("_First Page"),
-                        _("Go to the first page in the collection"))),
-    actionLast_(Gtk::Action::create(
-                        "ActionGoBrowserLastPage",
-                        Gtk::Stock::GOTO_LAST,
-                        _("_Last Page"),
-                        _("Go to the last page in the collection"))),
-    firstHBox_(false, 12),
-    previousButton_(),
-    previousImage_(),
-    shownItemsLabel_(),
-    nextButton_(),
-    nextImage_(),
-    secondHBox_(false, 12),
-    pageSizeLabel_(_("Photos per page")),
-    pageSizeSpinButton_(1.0, 0),
+//    pageSizeLabel_(_("Photos per page")),
+//    pageSizeSpinButton_(1.0, 0),
+    step_(50),
+    total_(0),
     lowerLimit_(0),
-    upperLimit_(0),
-    total_(0)
+    upperLimit_(step_)
 {
-    actionPrevious_->connect_proxy(previousButton_);
-    actionPrevious_->property_short_label().set_value(_("Previous"));
-    actionPrevious_->set_sensitive(false);
-    actionPrevious_->signal_activate().connect(
-        sigc::mem_fun(*this,
-                      &PaginationBar::on_action_go_previous));
-
-    actionNext_->connect_proxy(nextButton_);
-    actionNext_->property_short_label().set_value(_("Next"));
-    actionNext_->signal_activate().connect(
-        sigc::mem_fun(*this,
-                      &PaginationBar::on_action_go_next));
-
-    actionFirst_->property_short_label().set_value(_("First"));
-    actionFirst_->set_sensitive(false);
-    actionFirst_->signal_activate().connect(
-        sigc::mem_fun(*this,
-                      &PaginationBar::on_action_go_first));
-
-    actionLast_->property_short_label().set_value(_("Last"));
-    actionLast_->signal_activate().connect(
-        sigc::mem_fun(*this,
-                      &PaginationBar::on_action_go_last));
-
-    pageSizeSpinButton_.set_increments(1.0, 10.0);
-    pageSizeSpinButton_.set_numeric(true);
-    pageSizeSpinButton_.set_range(1.0, 500.0);
-    pageSizeSpinButton_.set_snap_to_ticks(false);
-    pageSizeSpinButton_.set_value(50.0);
-    pageSizeSpinButton_.set_wrap(false);
-    upperLimit_ = static_cast<guint>(
-                      pageSizeSpinButton_.get_value_as_int());
-
-    {
-        ActionPtr action = previousButton_.get_action();
-        previousImage_.set(action->property_stock_id().get_value(),
-                           Gtk::ICON_SIZE_LARGE_TOOLBAR);
-        previousButton_.set_image(previousImage_);
-        previousButton_.set_label(Glib::ustring());
-    }
-    firstHBox_.pack_start(previousButton_, Gtk::PACK_SHRINK, 0);
-
-    std::ostringstream sout;
-    sout << lowerLimit_ << " - " << upperLimit_ << " of " << total_;
-    shownItemsLabel_.set_label(sout.str());
-    firstHBox_.pack_start(shownItemsLabel_, Gtk::PACK_SHRINK, 0);
-
-    {
-        ActionPtr action = nextButton_.get_action();
-        nextImage_.set(action->property_stock_id().get_value(),
-                       Gtk::ICON_SIZE_LARGE_TOOLBAR);
-        nextButton_.set_image(nextImage_);
-        nextButton_.set_label(Glib::ustring());
-    }
-    firstHBox_.pack_start(nextButton_, Gtk::PACK_SHRINK, 0);
-
-    pack_start(firstHBox_, Gtk::PACK_SHRINK, 0);
-
-    secondHBox_.pack_start(pageSizeLabel_, Gtk::PACK_SHRINK, 0);
-    secondHBox_.pack_start(pageSizeSpinButton_, Gtk::PACK_SHRINK, 0);
-
-    pack_start(secondHBox_, Gtk::PACK_SHRINK, 0);
-
-    limitsChanged_.connect(
-        sigc::mem_fun(*this,
-                      &PaginationBar::on_limits_changed));
-
-    pageSizeSpinButton_.signal_activate().connect(
-        sigc::mem_fun(*this,
-                      &PaginationBar::on_spin_button_activate));
-
-    show_all_children();
+//    pageSizeSpinButton_.set_increments(1.0, 10.0);
+//    pageSizeSpinButton_.set_numeric(true);
+//    pageSizeSpinButton_.set_range(1.0, 500.0);
+//    pageSizeSpinButton_.set_snap_to_ticks(false);
+//    pageSizeSpinButton_.set_value(50.0);
+//    pageSizeSpinButton_.set_wrap(false);
 }
 
 PaginationBar::~PaginationBar() throw()
 {
 }
 
-const ActionPtr &
-PaginationBar::action_previous() throw()
-{
-    return actionPrevious_;
-}
-
-const ActionPtr &
-PaginationBar::action_next() throw()
-{
-    return actionNext_;
-}
-
-const ActionPtr &
-PaginationBar::action_first() throw()
-{
-    return actionFirst_;
-}
-
-const ActionPtr &
-PaginationBar::action_last() throw()
+guint
+PaginationBar::get_step() const throw()
 {
-    return actionLast_;
+    return step_;
 }
 
 guint
-PaginationBar::get_step() const throw()
+PaginationBar::get_total() const throw()
 {
-    const guint step = static_cast<guint>(
-                           pageSizeSpinButton_.get_value_as_int());
-    return step;
+    return total_;
 }
 
 guint
@@ -188,92 +74,60 @@ PaginationBar::get_upper_limit() const throw()
     return upperLimit_;
 }
 
-sigc::signal<void> &
-PaginationBar::limits_changed() throw()
-{
-    return limitsChanged_;
-}
-
 void
-PaginationBar::on_action_go_previous() throw()
+PaginationBar::go_previous() throw()
 {
-    const guint step = get_step();
-
-    if (step > lowerLimit_)
+    if (step_ > lowerLimit_)
     {
         lowerLimit_ = 0;
-        upperLimit_ = step;
+        upperLimit_ = step_;
     }
     else
     {
-        lowerLimit_ -= step;
-        upperLimit_ = lowerLimit_ + step;
+        lowerLimit_ -= step_;
+        upperLimit_ = lowerLimit_ + step_;
     }
 
     limitsChanged_.emit();
 }
 
 void
-PaginationBar::on_action_go_next() throw()
+PaginationBar::go_next() throw()
 {
-    const guint step = get_step();
-
-    upperLimit_ += step;
+    upperLimit_ += step_;
     if (total_ < upperLimit_)
     {
         upperLimit_ = total_;
     }
 
-    if (step > upperLimit_)
+    if (step_ > upperLimit_)
     {
         lowerLimit_ = 0;
     }
     else
     {
-        lowerLimit_ = upperLimit_ - step;
+        lowerLimit_ = upperLimit_ - step_;
     }
 
     limitsChanged_.emit();
 }
 
 void
-PaginationBar::on_action_go_first() throw()
+PaginationBar::go_first() throw()
 {
     scroll_to_position(0);
 }
 
 void
-PaginationBar::on_action_go_last() throw()
+PaginationBar::go_last() throw()
 {
     scroll_to_position(total_ - 1);
 }
 
-void
-PaginationBar::on_limits_changed() throw()
-{
-    actionPrevious_->set_sensitive((0 < lowerLimit_) ? true : false);
-    actionFirst_->set_sensitive((0 < lowerLimit_) ? true : false);
-
-    actionNext_->set_sensitive((total_ > upperLimit_) ? true : false);
-    actionLast_->set_sensitive((total_ > upperLimit_) ? true : false);
-
-    std::ostringstream sout;
-    sout << lowerLimit_ << " - " << upperLimit_ << " of " << total_;
-    shownItemsLabel_.set_label(sout.str());
-}
-
-void
-PaginationBar::on_spin_button_activate() throw()
+sigc::signal<void> &
+PaginationBar::limits_changed() throw()
 {
-    const guint step = get_step();
-
-    upperLimit_ = lowerLimit_ + step;
-    if (total_ < upperLimit_)
-    {
-        upperLimit_ = total_;
-    }
-
-    limitsChanged_.emit();
+    return limitsChanged_;
 }
 
 void
@@ -288,7 +142,6 @@ PaginationBar::scroll_to_position(guint position) throw()
         return;
     }
 
-    const guint step = get_step();
     const guint old_lower_limit = lowerLimit_;
     const guint old_upper_limit = upperLimit_;
 
@@ -296,38 +149,40 @@ PaginationBar::scroll_to_position(guint position) throw()
     {
         const double delta = lowerLimit_ - position;
         const guint pages = static_cast<guint>(
-                                ceil(delta / static_cast<double>(step)));
+                                ceil(delta
+                                     / static_cast<double>(step_)));
 
-        if (pages * step > lowerLimit_)
+        if (pages * step_ > lowerLimit_)
         {
             lowerLimit_ = 0;
-            upperLimit_ = step;
+            upperLimit_ = step_;
         }
         else
         {
-            lowerLimit_ -= pages * step;
-            upperLimit_ = lowerLimit_ + step;
+            lowerLimit_ -= pages * step_;
+            upperLimit_ = lowerLimit_ + step_;
         }
     }
     else if (position >= upperLimit_)
     {
         const double delta = position - upperLimit_ + 1;
         const guint pages = static_cast<guint>(
-                                ceil(delta / static_cast<double>(step)));
+                                ceil(delta
+                                     / static_cast<double>(step_)));
 
-        upperLimit_ += pages * step;
+        upperLimit_ += pages * step_;
         if (total_ < upperLimit_)
         {
             upperLimit_ = total_;
         }
 
-        if (step > upperLimit_)
+        if (step_ > upperLimit_)
         {
             lowerLimit_ = 0;
         }
         else
         {
-            lowerLimit_ = upperLimit_ - step;
+            lowerLimit_ = upperLimit_ - step_;
         }
     }
 
@@ -339,12 +194,26 @@ PaginationBar::scroll_to_position(guint position) throw()
 }
 
 void
+PaginationBar::set_step(guint step) throw()
+{
+    step_ = step;
+
+    upperLimit_ = lowerLimit_ + step_;
+    if (total_ < upperLimit_)
+    {
+        upperLimit_ = total_;
+    }
+
+    limitsChanged_.emit();
+}
+
+void
 PaginationBar::set_total(guint total) throw()
 {
     total_ = total;
 
     lowerLimit_ = 0;
-    upperLimit_ = get_step();
+    upperLimit_ = step_;
     if (total_ < upperLimit_)
     {
         upperLimit_ = total_;
diff --git a/src/renderer/pagination-bar.h b/src/renderer/pagination-bar.h
index 5556d7b..7232b21 100644
--- a/src/renderer/pagination-bar.h
+++ b/src/renderer/pagination-bar.h
@@ -1,6 +1,6 @@
 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
 /*
- * Copyright (C) 2009 Debarshi Ray <rishi gnu org>
+ * Copyright (C) 2009, 2010 Debarshi Ray <rishi gnu org>
  * Copyright (C) 2009 Santanu Sinha <santanu sinha gmail com>
  *
  * Solang is free software: you can redistribute it and/or modify it
@@ -20,103 +20,63 @@
 #ifndef SOLANG_PAGINATION_BAR_H
 #define SOLANG_PAGINATION_BAR_H
 
-#include <glibmm.h>
-#include <gtkmm.h>
-
 #include "types.h"
 
 namespace Solang
 {
 
-class PaginationBar :
-    public Gtk::HBox
+class PaginationBar
 {
     public:
         PaginationBar() throw();
 
         ~PaginationBar() throw();
 
-        const ActionPtr &
-        action_previous() throw();
-
-        const ActionPtr &
-        action_next() throw();
-
-        const ActionPtr &
-        action_first() throw();
-
-        const ActionPtr &
-        action_last() throw();
-
         guint
         get_step() const throw();
 
         guint
+        get_total() const throw();
+
+        guint
         get_lower_limit() const throw();
 
         guint
         get_upper_limit() const throw();
 
-        sigc::signal<void> &
-        limits_changed() throw();
-
         void
-        scroll_to_position(guint position) throw();
+        go_previous() throw();
 
         void
-        set_total(guint total) throw();
+        go_next() throw();
 
-    protected:
         void
-        on_action_go_previous() throw();
+        go_first() throw();
 
         void
-        on_action_go_next() throw();
+        go_last() throw();
 
-        void
-        on_action_go_first() throw();
+        sigc::signal<void> &
+        limits_changed() throw();
 
         void
-        on_action_go_last() throw();
+        scroll_to_position(guint position) throw();
 
         void
-        on_limits_changed() throw();
+        set_step(guint step) throw();
 
         void
-        on_spin_button_activate() throw();
-
-        ActionPtr actionPrevious_;
-
-        ActionPtr actionNext_;
-
-        ActionPtr actionFirst_;
-
-        ActionPtr actionLast_;
-
-        Gtk::HBox firstHBox_;
-
-        Gtk::Button previousButton_;
-
-        Gtk::Image previousImage_;
-
-        Gtk::Label shownItemsLabel_;
-
-        Gtk::Button nextButton_;
-
-        Gtk::Image nextImage_;
-
-        Gtk::HBox secondHBox_;
+        set_total(guint total) throw();
 
-        Gtk::Label pageSizeLabel_;
+    protected:
+        guint step_;
 
-        Gtk::SpinButton pageSizeSpinButton_;
+        guint total_;
 
         guint lowerLimit_;
 
         guint upperLimit_;
 
-        guint total_;
-
         sigc::signal<void> limitsChanged_;
 
     private:



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]