[gnote] Remake main window toolbar
- From: Aurimas Äernius <aurimasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnote] Remake main window toolbar
- Date: Sat, 24 Nov 2012 17:35:39 +0000 (UTC)
commit 3204c2edd6871fb42a8aae31570354d801900188
Author: Aurimas Äernius <aurisc4 gmail com>
Date: Sat Nov 24 19:31:45 2012 +0200
Remake main window toolbar
Move toolbar creation to a separate method.
Remove switcher menu button.
Add All Notes button for switching to search mode.
Add New Notes button.
src/recentchanges.cpp | 90 ++++++++++++++++++++-----------------------------
src/recentchanges.hpp | 7 ++--
2 files changed, 40 insertions(+), 57 deletions(-)
---
diff --git a/src/recentchanges.cpp b/src/recentchanges.cpp
index b742ac3..2c4c439 100644
--- a/src/recentchanges.cpp
+++ b/src/recentchanges.cpp
@@ -26,6 +26,7 @@
#include <boost/bind.hpp>
#include <glibmm/i18n.h>
#include <gtkmm/image.h>
+#include <gtkmm/stock.h>
#include "actionmanager.hpp"
#include "debug.hpp"
@@ -62,17 +63,7 @@ namespace gnote {
m_search_notes_widget.signal_open_note_new_window
.connect(sigc::mem_fun(*this, &NoteRecentChanges::on_open_note_new_window));
- Gtk::Toolbar *toolbar = manage(new Gtk::Toolbar);
- m_menu = manage(new Gtk::Menu);
- m_menu->signal_show().connect(sigc::mem_fun(*this, &NoteRecentChanges::on_menu_show));
- utils::ToolMenuButton *tool_button = manage(new utils::ToolMenuButton(
- *manage(new Gtk::Image(IconManager::obj().get_icon(IconManager::NOTE, 24))), _("_Show"), m_menu));
- tool_button->set_use_underline(true);
- tool_button->set_is_important(true);
- tool_button->show_all();
- toolbar->append(*tool_button);
- toolbar->show();
-
+ Gtk::Toolbar *toolbar = make_toolbar();
m_content_vbox.pack_start(*toolbar, false, false, 0);
m_content_vbox.pack_start(m_embed_box, true, true, 0);
m_embed_box.show();
@@ -94,6 +85,39 @@ namespace gnote {
}
}
+ Gtk::Toolbar *NoteRecentChanges::make_toolbar()
+ {
+ Gtk::Toolbar *toolbar = manage(new Gtk::Toolbar);
+ m_all_notes_button = manage(new Gtk::ToolButton(
+ *manage(new Gtk::Image(Gtk::Stock::FIND, Gtk::IconSize(24))), _("All Notes")));
+ m_all_notes_button->set_is_important();
+ m_all_notes_button->signal_clicked().connect(sigc::mem_fun(*this, &NoteRecentChanges::on_all_notes_clicked));
+ m_all_notes_button->show_all();
+ toolbar->append(*m_all_notes_button);
+
+ Gtk::ToolButton *button = manage(new Gtk::ToolButton(
+ *manage(new Gtk::Image(IconManager::obj().get_icon(IconManager::NOTE_NEW, 24))),
+ _("New")));
+ button->set_is_important();
+ button->signal_clicked().connect(sigc::mem_fun(m_search_notes_widget, &SearchNotesWidget::new_note));
+ button->show_all();
+ toolbar->append(*button);
+
+ toolbar->show();
+ return toolbar;
+ }
+
+ void NoteRecentChanges::on_all_notes_clicked()
+ {
+ utils::EmbedableWidget *current = currently_embeded();
+ if(&m_search_notes_widget == dynamic_cast<SearchNotesWidget*>(current)) {
+ return;
+ }
+ if(current) {
+ background_embeded(*current);
+ }
+ foreground_embeded(m_search_notes_widget);
+ }
void NoteRecentChanges::present_note(const Note::Ptr & note)
{
@@ -275,6 +299,8 @@ namespace gnote {
m_embed_box.pack_start(wid, true, true, 0);
widget.foreground();
wid.show();
+ m_all_notes_button->set_sensitive(
+ dynamic_cast<SearchNotesWidget*>(&widget) != &m_search_notes_widget);
}
catch(std::bad_cast&) {
}
@@ -307,48 +333,6 @@ namespace gnote {
return false;
}
- void NoteRecentChanges::on_embeded_widget_menu_item_toggled(Gtk::RadioMenuItem *item,
- utils::EmbedableWidget * widget)
- {
- if(std::find(m_embeded_widgets.begin(), m_embeded_widgets.end(), widget)
- == m_embeded_widgets.end()) {
- return;
- }
- if(item->get_active()) {
- foreground_embeded(*widget);
- }
- else {
- background_embeded(*widget);
- }
- }
-
- void NoteRecentChanges::on_menu_show()
- {
- std::vector<Gtk::Widget*> items = m_menu->get_children();
- for(std::vector<Gtk::Widget*>::iterator iter = items.begin(); iter != items.end(); ++iter) {
- m_menu->remove(**iter);
- }
-
- utils::EmbedableWidget *current = currently_embeded();
- Gtk::RadioMenuItem *active_item = NULL;
- for(std::list<utils::EmbedableWidget*>::iterator iter = m_embeded_widgets.begin();
- iter != m_embeded_widgets.end(); ++iter) {
- Gtk::RadioMenuItem *item = manage(new Gtk::RadioMenuItem(m_tool_menu_group, (*iter)->get_name()));
- item->signal_toggled().connect(
- boost::bind(sigc::mem_fun(*this, &NoteRecentChanges::on_embeded_widget_menu_item_toggled),
- item, *iter));
- item->show();
- m_menu->append(*item);
- if(*iter == current) {
- active_item = item;
- }
- }
-
- if(active_item) {
- active_item->set_active(true);
- }
- }
-
utils::EmbedableWidget *NoteRecentChanges::currently_embeded()
{
std::vector<Gtk::Widget*> children = m_embed_box.get_children();
diff --git a/src/recentchanges.hpp b/src/recentchanges.hpp
index 2d74e4b..a07cd76 100644
--- a/src/recentchanges.hpp
+++ b/src/recentchanges.hpp
@@ -78,17 +78,16 @@ private:
bool on_delete(GdkEventAny *);
bool on_key_pressed(GdkEventKey *);
bool is_foreground(utils::EmbedableWidget &);
- void on_embeded_widget_menu_item_toggled(Gtk::RadioMenuItem *, utils::EmbedableWidget *);
- void on_menu_show();
utils::EmbedableWidget *currently_embeded();
+ Gtk::Toolbar *make_toolbar();
+ void on_all_notes_clicked();
NoteManager &m_note_manager;
SearchNotesWidget m_search_notes_widget;
Gtk::VBox m_content_vbox;
Gtk::VBox m_embed_box;
+ Gtk::ToolButton *m_all_notes_button;
std::list<utils::EmbedableWidget*> m_embeded_widgets;
- Gtk::Menu *m_menu;
- Gtk::RadioMenuItem::Group m_tool_menu_group;
bool m_mapped;
};
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]