diff --git a/Gtkmm3/gtk133_editor3/.vscode/settings.json b/Gtkmm3/gtk133_editor3/.vscode/settings.json
new file mode 100644
index 0000000..b4d8c35
--- /dev/null
+++ b/Gtkmm3/gtk133_editor3/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
+}
\ No newline at end of file
diff --git a/Gtkmm3/gtk133_editor3/CMakeLists.txt b/Gtkmm3/gtk133_editor3/CMakeLists.txt
index 09e309a..b1f84e6 100644
--- a/Gtkmm3/gtk133_editor3/CMakeLists.txt
+++ b/Gtkmm3/gtk133_editor3/CMakeLists.txt
@@ -31,7 +31,7 @@ set(SOURCE_FILE src/main.cc src/TextEditor.cc)
#Compile Resource
set(RESOURCE_LIST
- searchbar.ui
+ texteditor.ui
text_menu.xml)
compile_gresources(RESOURCE_FILE
diff --git a/Gtkmm3/gtk133_editor3/res/texteditor.ui b/Gtkmm3/gtk133_editor3/res/texteditor.ui
new file mode 100644
index 0000000..e3f4bd0
--- /dev/null
+++ b/Gtkmm3/gtk133_editor3/res/texteditor.ui
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
diff --git a/Gtkmm3/gtk133_editor3/src/TextEditor.cc b/Gtkmm3/gtk133_editor3/src/TextEditor.cc
index 41fcd10..18b9025 100644
--- a/Gtkmm3/gtk133_editor3/src/TextEditor.cc
+++ b/Gtkmm3/gtk133_editor3/src/TextEditor.cc
@@ -5,30 +5,38 @@
// Only for build in this repository
#define text_globs supported_globs
-TextEditor::TextEditor()
-:vbox(Gtk::ORIENTATION_VERTICAL,5),
-hbox(Gtk::ORIENTATION_HORIZONTAL,5)
+TextEditor::TextEditor(BaseObjectType *cobject,const Glib::RefPtr &ref_builder)
+:Gtk::ApplicationWindow(cobject),
+main_builder(ref_builder)
{
//Initalize Window
- set_default_size(800,450);
- set_icon_name("my_textedit");
+ // set_default_size(800,450);
+ // set_icon_name("my_textedit");
//Initalize HeaderBar
- header.set_decoration_layout("close,minimize,maximize:menu");
- header.set_show_close_button();
- menubtn.set_image_from_icon_name("open-menu");
- search_button.set_image_from_icon_name("find");
- header.pack_end(menubtn);
- header.pack_end(search_button);
- header.set_title("Simple Text Editor");
- set_titlebar(header);
+ // header.set_decoration_layout("close,minimize,maximize:menu");
+ // header.set_show_close_button();
+ // menubtn.set_image_from_icon_name("open-menu");
+ // search_button.set_image_from_icon_name("find");
+ // header.pack_end(menubtn);
+ // header.pack_end(search_button);
+ // header.set_title("Simple Text Editor");
+ // set_titlebar(header);
+
+ // Get Widgets
+ main_builder->get_widget("popover1",popover);
+ main_builder->get_widget("searchbar",searchbar);
+ main_builder->get_widget("searchentry",search_entry);
+ main_builder->get_widget("searchbtn",search_button);
//Add a menu
menu_builder = Gtk::Builder::create_from_resource("/org/gtk/daleclack/text_menu.xml");
auto object = menu_builder->get_object("text_menu");
auto gmenu = Glib::RefPtr::cast_dynamic(object);
- popover.bind_model(gmenu);
- menubtn.set_popover(popover);
+ popover->bind_model(gmenu);
+ // menubtn.set_popover(*popover);
+
+ m_binding = Glib::Binding::bind_property(search_button->property_active(),searchbar->property_search_mode_enabled(),Glib::BINDING_BIDIRECTIONAL);
//Initalize Text Buffers
buffer1=textview1.get_buffer();
@@ -47,14 +55,14 @@ hbox(Gtk::ORIENTATION_HORIZONTAL,5)
add_action("text_clear",sigc::mem_fun(*this,&TextEditor::btnclear_clicked));
//Add searchbar
- searchbar_builder = Gtk::Builder::create_from_resource("/org/gtk/daleclack/searchbar.ui");
- searchbar_builder->get_widget("searchbar",searchbar);
- searchbar_builder->get_widget("searchentry",search_entry);
- searchbar_builder->get_widget("search_box",searchbox);
- Glib::Binding::bind_property(search_button.property_active(),
- searchbar->property_search_mode_enabled(),
- Glib::BINDING_BIDIRECTIONAL);
- vbox.pack_start(*searchbox);
+ // searchbar_builder = Gtk::Builder::create_from_resource("/org/gtk/daleclack/searchbar.ui");
+ // searchbar_builder->get_widget("searchbar",searchbar);
+ // searchbar_builder->get_widget("searchentry",search_entry);
+ // searchbar_builder->get_widget("search_box",searchbox);
+ // Glib::Binding::bind_property(search_button.property_active(),
+ // searchbar->property_search_mode_enabled(),
+ // Glib::BINDING_BIDIRECTIONAL);
+ // vbox.pack_start(*searchbox);
//A InfoBar
infobar.add_button("OK",Gtk::RESPONSE_OK);
@@ -65,7 +73,7 @@ hbox(Gtk::ORIENTATION_HORIZONTAL,5)
//Show everything
vbox.pack_start(hbox);
- add(vbox);
+ // add(vbox);
show_all_children();
infobar.hide();
}
@@ -205,3 +213,11 @@ void TextEditor::btnclear_clicked(){
void TextEditor::infobar_response(int response){
infobar.hide();
}
+
+TextEditor * TextEditor::create(){
+ auto builder = Gtk::Builder::create_from_resource("/org/gtk/daleclack/texteditor.ui");
+ TextEditor *win = nullptr;
+
+ builder->get_widget_derived("editor_win",win);
+ return win;
+}
diff --git a/Gtkmm3/gtk133_editor3/src/TextEditor.hh b/Gtkmm3/gtk133_editor3/src/TextEditor.hh
index 2b96d8a..fecc05e 100644
--- a/Gtkmm3/gtk133_editor3/src/TextEditor.hh
+++ b/Gtkmm3/gtk133_editor3/src/TextEditor.hh
@@ -4,17 +4,19 @@
class TextEditor : public Gtk::ApplicationWindow{
public:
- TextEditor();
+ TextEditor(BaseObjectType *cobject,const Glib::RefPtr &ref_builder);
+ static TextEditor * create();
private:
//Header widgets
- Gtk::HeaderBar header;
- Gtk::MenuButton menubtn;
- Gtk::Popover popover;
- Gtk::ToggleButton search_button;
+ // Gtk::HeaderBar header;
+ // Gtk::MenuButton menubtn;
+ Gtk::Popover *popover;
+ Gtk::ToggleButton *search_button;
Gtk::SearchBar *searchbar;
Gtk::SearchEntry *search_entry;
- Glib::RefPtr menu_builder, searchbar_builder;
- Gtk::Box *searchbox;
+ Glib::RefPtr menu_builder, main_builder;
+ Glib::RefPtr m_binding;
+ // Gtk::Box *searchbox;
//Window widgets
Gtk::Box vbox,hbox,*infobox;
diff --git a/Gtkmm3/gtk133_editor3/src/main.cc b/Gtkmm3/gtk133_editor3/src/main.cc
index 9c33625..10b9ae8 100644
--- a/Gtkmm3/gtk133_editor3/src/main.cc
+++ b/Gtkmm3/gtk133_editor3/src/main.cc
@@ -2,6 +2,6 @@
int main(int argc,char **argv){
auto app = Gtk::Application::create(argc,argv,"org.gtk.daleclack");
- TextEditor textwin;
- return app->run(textwin);
+ auto textwin = TextEditor::create();
+ return app->run(*textwin);
}
\ No newline at end of file