/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */ /* * general-tab.cc * Copyright (C) 2017 Unknown * * histodexc is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * histodexc is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #include "general-tab.h" #include "stage-tab.h" #include "stage.h" static void on_stage_changed (GtkSpinButton *spin_button, gpointer user_data) { GeneralTab* z = (GeneralTab*) ((CallbackArg*)user_data)->tab; z->on_stage_changed (); } GeneralTab::GeneralTab(GtkWidget *window, GtkBuilder *builder, StageTab* st) : Tab(window, builder) { CallbackArg* mca = new CallbackArg (this); m_tab_type=TAB_TYPE_GENERAL; m_stage=st; m_name=(GtkEntry*)gtk_builder_get_object(m_builder, "entry_gen_name"); m_stages=(GtkSpinButton*)gtk_builder_get_object(m_builder, "spin_gen_stages"); CONNECT(m_stages, "value-changed", ::on_stage_changed, mca); m_dir=(GtkFileChooserButton*)gtk_builder_get_object(m_builder, "fcd_dir"); } GeneralTab::~GeneralTab() { } void GeneralTab::write(const std::string& file) { } Json::Value GeneralTab::getJson(bool bo) { bool b; General& g = (General&)getTab(b); return g.getJson(bo); } void GeneralTab::open(Json::Value& val) { General g(val); setupTab(g); } void GeneralTab::on_save_clicked() { } int GeneralTab::on_stage_changed() { m_stage->setNStage (gtk_spin_button_get_value(m_stages)); } void GeneralTab::setupTab(Data& _a) { General& a=General::cast(_a); gtk_entry_set_text (m_name, a.m_name.c_str()); gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(m_dir), a.m_dir.c_str()); gtk_spin_button_set_value (m_stages, a.m_nStages); } Data& GeneralTab::getTab(bool& genFinal) { static General g; g.m_name = gtk_entry_get_text(m_name); g.m_dir = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(m_dir)); g.m_nStages = (int)gtk_spin_button_get_value(m_stages); return g; }