void boardView(bool destroy=true) { ///Show/hide widgets for viewing all of the threads on a board Gtk::ScrolledWindow *boardlist = 0; builder->get_widget("scrolledwindow1", boardlist); boardlist->set_visible(false); boardlist->hide(); Gtk::Paned *threadview = 0; builder->get_widget("paned1", threadview); threadview->set_visible(true); threadview->show(); if(INIT) { //To be run only the first time a board is viewed Gtk::Window *window = 0; builder->get_widget("window1", window); int w = 0; int h = 0; window->get_size(w, h); threadview->set_position((1-2/(1+sqrt(5)))*w); Gtk::TextView *view = 0; builder->get_widget("textview1", view); GtkSpellChecker* spell = gtk_spell_checker_new (); gtk_spell_checker_set_language (spell, setlocale(LC_ALL,NULL), NULL); gtk_spell_checker_attach (spell, GTK_TEXT_VIEW (view->gobj())); INIT = false; } Gtk::ToolItem *boardback = 0; builder->get_widget("toolbutton3", boardback); boardback->set_visible(true); boardback->show(); Gtk::ToolItem *threadback = 0; builder->get_widget("toolbutton4", threadback); threadback->set_visible(false); threadback->hide(); Gtk::Button* button; builder->get_widget("button1", button); button->signal_clicked().connect(sigc::ptr_fun(&on_board_back_clicked)); button->set_visible(true); button->show(); Gtk::ScrolledWindow *threadlist = 0; builder->get_widget("scrolledwindow2", threadlist); threadlist->set_visible(true); threadlist->show(); Gtk::ScrolledWindow *postlist = 0; builder->get_widget("scrolledwindow4", postlist); postlist->set_visible(false); postlist->hide(); Gtk::ScrolledWindow *webview = 0; builder->get_widget("scrolledwindow3", webview); webview->set_visible(true); webview->show(); Gtk::ToolButton* refresh; builder->get_widget("toolbutton5", refresh); refresh->set_visible(true); refresh->show(); gtk_widget_show(GTK_WIDGET(pWebKitView)); Gtk::Label *title = 0; builder->get_widget("label2", title); title->set_text(BOARD+" - "+LONGBOARD); Gtk::ToolButton *refresh1 = 0; builder->get_widget("toolbutton5", refresh1); refresh1->set_visible(true); refresh1->show(); Gtk::ToolItem *refresh2 = 0; builder->get_widget("toolbutton6", refresh2); refresh2->set_visible(false); refresh2->hide(); Gtk::MenuItem *item3 = 0; builder->get_widget("menuitem3", item3); item3->set_sensitive(false); Gtk::ToolButton *post_but; builder->get_widget("toolbutton8", post_but); post_but->set_visible(true); post_but->show(); }
/** * Sets up the main window. */ GtkMainWindow::GtkMainWindow() : m_core(Application::getSingleton()->getCore()) { //TODO:This needs to be refactored this->set_position(Gtk::WIN_POS_CENTER); this->set_default_size(800, 500); Gtk::Paned *panel = Gtk::manage(new Gtk::Paned(Gtk::ORIENTATION_VERTICAL)); m_infobar = Gtk::manage(new GtkTorrentInfoBar()); m_treeview = Gtk::manage(new GtkTorrentTreeView(m_infobar)); panel->pack1(*m_treeview); panel->pack2(*m_infobar); Glib:: signal_timeout().connect(sigc::mem_fun(*this, &GtkMainWindow::onSecTick), 1000); this->signal_delete_event().connect(sigc::mem_fun(*this, &GtkMainWindow::onDestroy)); header = Gtk::manage(new Gtk::HeaderBar()); header->set_show_close_button(true); header->set_title("gTorrent"); Glib::RefPtr<Gtk::ActionGroup> action_group = Gtk::ActionGroup::create(); action_group->add(Gtk::Action::create( "Properties", Gtk::Stock::PROPERTIES)); action_group->add(Gtk::Action::create( "Add Link", Gtk::Stock::PASTE), sigc::mem_fun(*this, &GtkMainWindow::onAddMagnetBtnClicked)); action_group->add(Gtk::Action::create("Add Torrent", Gtk::Stock::ADD), sigc::mem_fun(*this, &GtkMainWindow::onAddBtnClicked)); action_group->add(Gtk::Action::create( "Remove", Gtk::Stock::CANCEL), sigc::mem_fun(*this, &GtkMainWindow::onRemoveBtnClicked)); action_group->add(Gtk::Action::create( "Resume", Gtk::Stock::MEDIA_PLAY), sigc::mem_fun(*this, &GtkMainWindow::onResumeBtnClicked)); action_group->add(Gtk::Action::create( "Pause", Gtk::Stock::MEDIA_PAUSE), sigc::mem_fun(*this, &GtkMainWindow::onPauseBtnClicked)); action_group->add(Gtk::Action::create( "Up", Gtk::Stock::GO_UP)); action_group->add(Gtk::Action::create( "Down", Gtk::Stock::GO_DOWN)); Glib::RefPtr<Gtk::UIManager> ui_manager = Gtk::UIManager::create(); ui_manager->insert_action_group(action_group); add_accel_group(ui_manager->get_accel_group()); Glib::ustring ui_info = "<ui>" " <toolbar name='ToolBar'>" " <toolitem action='Properties' />" " <separator />" " <toolitem action='Add Link' />" " <toolitem action='Add Torrent' />" " <separator />" " <toolitem action='Remove' />" " <toolitem action='Pause' />" " <toolitem action='Resume' />" " <separator />" " <toolitem action='Down' />" " <toolitem action='Up' />" " <separator />" " </toolbar>" "</ui>"; ui_manager->add_ui_from_string(ui_info); this->add(*panel); Gtk::Widget* pToolBar = ui_manager->get_widget("/ToolBar"); pToolBar->override_background_color(Gdk::RGBA("0, 0, 0, 0")); header->add(*pToolBar); // Let's add some DnD goodness vector<Gtk::TargetEntry> listTargets; listTargets.push_back(Gtk::TargetEntry("STRING")); listTargets.push_back(Gtk::TargetEntry("text/plain")); listTargets.push_back(Gtk::TargetEntry("text/uri-list")); listTargets.push_back(Gtk::TargetEntry("application/x-bittorrent")); m_treeview->drag_dest_set(listTargets, Gtk::DEST_DEFAULT_MOTION | Gtk::DEST_DEFAULT_DROP, Gdk::ACTION_COPY | Gdk::ACTION_MOVE | Gdk::ACTION_LINK | Gdk::ACTION_PRIVATE); m_treeview->signal_drag_data_received().connect(sigc::mem_fun(*this, &GtkMainWindow::onFileDropped)); this->set_titlebar(*header); this->show_all(); panel->set_position(this->get_height() * 0.5); }