/* This file is a part of WordExtract project
*
* Copyright (C) 2009 Borisov Alexandr
*
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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
#include "interface.h"
#include "callbacks.h"
static GtkWidget *gtk_button_new_with_label_and_image(gchar *img_file, gchar *label);
GtkWidget *create_main_window()
{
GtkWidget *main_window;
GtkWidget *vbox;
GtkWidget *tool_hbox;
GtkWidget *open_btn;
GtkWidget *save_btn;
GtkWidget *preferences_btn;
GtkWidget *dict_btn;
GtkWidget *about_btn;
GtkWidget *quit_btn;
GtkWidget *hpaned;
GtkWidget *word_sc_win;
GtkWidget *word_list;
GtkWidget *sentences_sc_win;
GtkWidget *sentences_text;
GtkWidget *statusbar;
main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(main_window, 640, 480);
gtk_container_set_border_width(GTK_CONTAINER(main_window), 2);
gtk_window_set_title(GTK_WINDOW(main_window), "WordExtract");
gtk_window_set_position(GTK_WINDOW(main_window), GTK_WIN_POS_CENTER);
g_signal_connect(G_OBJECT(main_window), "delete_event", G_CALLBACK(main_window_close), NULL);
g_signal_connect(G_OBJECT(main_window), "destroy", G_CALLBACK(main_window_destroy), NULL);
vbox = gtk_vbox_new(FALSE, 0);
gtk_widget_show(vbox);
gtk_container_add(GTK_CONTAINER(main_window), vbox);
gtk_container_set_border_width(GTK_CONTAINER(vbox), 2);
tool_hbox = gtk_hbox_new(FALSE, 0);
gtk_widget_show(tool_hbox);
gtk_box_pack_start(GTK_BOX(vbox), tool_hbox, FALSE, FALSE, 0);
open_btn = gtk_button_new_with_label_and_image("gtk-open", "Open");
gtk_widget_show(open_btn);
gtk_box_pack_start(GTK_BOX(tool_hbox), open_btn, FALSE, FALSE, 0);
save_btn = gtk_button_new_with_label_and_image("gtk-save-as", "Save");
gtk_widget_show(save_btn);
gtk_box_pack_start(GTK_BOX(tool_hbox), save_btn, FALSE, FALSE, 0);
preferences_btn = gtk_button_new_with_label_and_image("gtk-preferences", "Preferences");
gtk_widget_show (preferences_btn);
gtk_box_pack_start (GTK_BOX (tool_hbox), preferences_btn, FALSE, FALSE, 0);
dict_btn = gtk_button_new_with_label_and_image("gtk-edit", "Dictionary");
gtk_widget_show(dict_btn);
gtk_box_pack_start(GTK_BOX(tool_hbox), dict_btn, FALSE, FALSE, 0);
quit_btn = gtk_button_new_with_label_and_image("gtk-quit", "Quit");
gtk_widget_show (quit_btn);
gtk_box_pack_end(GTK_BOX(tool_hbox), quit_btn, FALSE, FALSE, 0);
about_btn = gtk_button_new_with_label_and_image("gtk-about", "About");
gtk_widget_show(about_btn);
gtk_box_pack_end(GTK_BOX(tool_hbox), about_btn, FALSE, FALSE, 0);
hpaned = gtk_hpaned_new();
gtk_widget_show(hpaned);
gtk_box_pack_start(GTK_BOX(vbox), hpaned, TRUE, TRUE, 0);
gtk_paned_set_position(GTK_PANED(hpaned), 200);
word_sc_win = gtk_scrolled_window_new(NULL, NULL);
gtk_widget_show(word_sc_win);
gtk_paned_add1(GTK_PANED(hpaned), word_sc_win);
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(word_sc_win), GTK_SHADOW_IN);
word_list = gtk_tree_view_new();
gtk_widget_show(word_list);
gtk_container_add(GTK_CONTAINER(word_sc_win), word_list);
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(word_list), FALSE);
gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(word_list), TRUE);
sentences_sc_win = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_show (sentences_sc_win);
gtk_paned_add2(GTK_PANED(hpaned), sentences_sc_win);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sentences_sc_win), GTK_SHADOW_IN);
sentences_text = gtk_text_view_new();
gtk_widget_show(sentences_text);
gtk_container_add(GTK_CONTAINER(sentences_sc_win), sentences_text);
gtk_text_view_set_editable(GTK_TEXT_VIEW(sentences_text), FALSE);
statusbar = gtk_statusbar_new();
gtk_widget_show(statusbar);
gtk_box_pack_start(GTK_BOX(vbox), statusbar, FALSE, FALSE, 0);
return main_window;
}
/*GtkWidget *create_popup_menu(void)
{
GtkWidget *popup_menu;
GtkWidget *show_sent_item;
GtkWidget *find_image;
GtkWidget *add_to_dict_item;
GtkWidget *add_image;
GtkTooltips *tooltips;
tooltips = gtk_tooltips_new ();
popup_menu = gtk_menu_new ();
show_sent_item = gtk_image_menu_item_new_with_mnemonic (_("Show Sentence"));
gtk_widget_show (show_sent_item);
gtk_container_add (GTK_CONTAINER (popup_menu), show_sent_item);
gtk_tooltips_set_tip (tooltips, show_sent_item, _("Show sentenses word appears in"), NULL);
find_image = gtk_image_new_from_stock ("gtk-find", GTK_ICON_SIZE_MENU);
gtk_widget_show (find_image);
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (show_sent_item), find_image);
add_to_dict_item = gtk_image_menu_item_new_with_mnemonic (_("Add To Dictionary"));
gtk_widget_show (add_to_dict_item);
gtk_container_add (GTK_CONTAINER (popup_menu), add_to_dict_item);
gtk_tooltips_set_tip (tooltips, add_to_dict_item, _("Add word to my dictionary"), NULL);
add_image = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
gtk_widget_show (add_image);
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (add_to_dict_item), add_image);
g_signal_connect ((gpointer) show_sent_item, "activate",
G_CALLBACK (on_show_sent_item_activate),
NULL);
g_signal_connect ((gpointer) add_to_dict_item, "activate",
G_CALLBACK (on_add_to_dict_item_activate),
NULL);
return popup_menu;
}*/
static GtkWidget *gtk_button_new_with_label_and_image(gchar *img_name, gchar *label_text)
{
GtkWidget *button;
GtkWidget *box;
GtkWidget *label;
GtkWidget *image;
button = gtk_button_new();
box = gtk_hbox_new(FALSE, 2);
gtk_container_add(GTK_CONTAINER(button), box);
image = gtk_image_new_from_stock(img_name, GTK_ICON_SIZE_BUTTON);
gtk_box_pack_start(GTK_BOX(box), image, FALSE, FALSE, 0);
label = gtk_label_new_with_mnemonic(label_text);
gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 0);
gtk_widget_show(image);
gtk_widget_show(label);
gtk_widget_show(box);
return button;
}