Пример #1
0
//---------------------------------------------------------------------------
//
//---------------------------------------------------------------------------
void __fastcall TDialogProjectNew::BuildTreeView(TTreeView *TreeView, TTreeNode *TreeNode, const String Path)
{
  TSearchRec SearchRec;
  if (FindFirst(Path + "\\*.*", faAnyFile, SearchRec) == 0) {
    do {
      if (SearchRec.Name[1] != '.') {
        if (SearchRec.Attr & faDirectory) {
          TTreeNode *TreeNode2 = TreeView->Items->AddChild(TreeNode, SearchRec.Name);
          TreeNode2->ImageIndex = 2;
          TreeNode2->SelectedIndex = 2;
          BuildTreeView(TreeView, TreeNode2, Path + "\\" + SearchRec.Name);
        }
      }
    } while (FindNext(SearchRec) == 0);
    FindClose(SearchRec);
  }
  if (FindFirst(Path + "\\*.*", faAnyFile, SearchRec) == 0) {
    do {
      if (SearchRec.Name[1] != '.') {
        if (!(SearchRec.Attr & faDirectory)) {
          TTreeNode *TreeNode2 = TreeView->Items->AddChild(TreeNode, SearchRec.Name);
          TreeNode2->ImageIndex = 1;
          TreeNode2->SelectedIndex = 1;
        }
      }
    } while (FindNext(SearchRec) == 0);
    FindClose(SearchRec);
  }
}
Пример #2
0
//---------------------------------------------------------------------------
void __fastcall TDialogProjectNew::ListViewClick(TObject *Sender)
{
  if (ListView->Selected) {
    TBusy Busy;
    {
      String Path = Usul()->Path + "\\Templates\\Projects\\." + ListView->Selected->Caption + ".rtf";
      RichEdit->Visible = FileExists(Path);
      if (RichEdit->Visible)
        RichEdit->Lines->LoadFromFile(Path);
    }
    TreeView->Items->BeginUpdate();
    TreeView->Items->Clear();
    String Path = TemplatePath + "\\" + ListView->Selected->Caption;
    TTreeNode *TreeNode = TreeView->Items->Add(0, Path);
    TreeNode->ImageIndex = 1;
    TreeNode->SelectedIndex = 1;
    BuildTreeView(TreeView, TreeNode, Path);
    TreeNode->Expand(true);
    TreeView->Items->EndUpdate();
  }
}
Пример #3
0
int main (int argc, char *argv[])
{
  GtkWidget *window1;
  GdkPixbuf *window1_icon_pixbuf;
  GtkWidget *vbox1;
  GtkWidget *menubar1;
  GtkWidget *menuitem1;
  GtkWidget *menuitem1_menu;
  GtkWidget *Save_s_1;
  GtkWidget *Quit_q_1;
  GtkWidget *menuitem2;
  GtkWidget *menuitem2_menu;
  GtkWidget *Add_a_1;
  GtkWidget *Edit_e_1;
  GtkWidget *Delete_d_1;
  GtkWidget *menuitem3;
  GtkWidget *menuitem3_menu;
  GtkWidget *Find_f_1;
  GtkWidget *toolbar1;
  GtkIconSize tmp_toolbar_icon_size;
  GtkWidget *toolbutton1;
  GtkWidget *toolbutton2;
  GtkWidget *toolbutton3;
  GtkWidget *toolbutton4;
  GtkWidget *toolbutton5;
  GtkWidget *hbox1;
  GtkWidget *scrolledwindow1;
  GtkWidget *treeview;
  GtkWidget *scrolledwindow2;
  GtkWidget *textview1;
  GtkAccelGroup *accel_group;
  GtkTooltips *tooltips;
  GtkTreeSelection *selection;

  
  //初始化GTK+
  gtk_init (&argc, &argv);

  tooltips = gtk_tooltips_new ();

  accel_group = gtk_accel_group_new ();

  window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_widget_set_size_request (window1, 450, 600);
  gtk_window_set_title (GTK_WINDOW (window1), "Echo Addressbook");
  
  gtk_window_set_icon_from_file(GTK_WINDOW (window1), "./pixmaps/logo.png", NULL);
 


  vbox1 = gtk_vbox_new (FALSE, 0);
  gtk_container_add (GTK_CONTAINER (window1), vbox1);

//菜单
  menubar1 = gtk_menu_bar_new ();
  gtk_box_pack_start (GTK_BOX (vbox1), menubar1, FALSE, FALSE, 0);

  menuitem1 = gtk_menu_item_new_with_mnemonic ("_File");
  gtk_container_add (GTK_CONTAINER (menubar1), menuitem1);

	menuitem1_menu = gtk_menu_new ();
	gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem1), menuitem1_menu);

	Save_s_1 = gtk_image_menu_item_new_from_stock ("gtk-save", accel_group);
	gtk_container_add (GTK_CONTAINER (menuitem1_menu), Save_s_1);

	Quit_q_1 = gtk_image_menu_item_new_from_stock ("gtk-quit", accel_group);
	gtk_container_add (GTK_CONTAINER (menuitem1_menu), Quit_q_1);

  menuitem2 = gtk_menu_item_new_with_mnemonic ("_Edit");
  gtk_container_add (GTK_CONTAINER (menubar1), menuitem2);

	menuitem2_menu = gtk_menu_new ();
	gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem2), menuitem2_menu);

	Add_a_1 = gtk_image_menu_item_new_from_stock ("gtk-add", accel_group);
	gtk_container_add (GTK_CONTAINER (menuitem2_menu), Add_a_1);
    gtk_widget_add_accelerator (Add_a_1, "activate", accel_group, GDK_a, (GdkModifierType) GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE);

	Edit_e_1 = gtk_image_menu_item_new_from_stock ("gtk-edit", accel_group);
	gtk_container_add (GTK_CONTAINER (menuitem2_menu), Edit_e_1);
    gtk_widget_add_accelerator (Edit_e_1, "activate", accel_group, GDK_e, (GdkModifierType) GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE);

	Delete_d_1 = gtk_image_menu_item_new_from_stock ("gtk-delete", accel_group);
	gtk_container_add (GTK_CONTAINER (menuitem2_menu), Delete_d_1);
    gtk_widget_add_accelerator (Delete_d_1, "activate", accel_group, GDK_d, (GdkModifierType) GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE);

  menuitem3 = gtk_menu_item_new_with_mnemonic ("_Search");
  gtk_container_add (GTK_CONTAINER (menubar1), menuitem3);

	menuitem3_menu = gtk_menu_new ();
	gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem3), menuitem3_menu);

	Find_f_1 = gtk_image_menu_item_new_from_stock ("gtk-find", accel_group);
	gtk_container_add (GTK_CONTAINER (menuitem3_menu), Find_f_1);
//菜单


//工具条
  toolbar1 = gtk_toolbar_new ();
  gtk_box_pack_start (GTK_BOX (vbox1), toolbar1, FALSE, FALSE, 0);
  gtk_toolbar_set_style (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_ICONS);
  tmp_toolbar_icon_size = gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar1));

  toolbutton1 = (GtkWidget *) gtk_tool_button_new_from_stock ("gtk-add");
  gtk_container_add (GTK_CONTAINER (toolbar1), toolbutton1);
  gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (toolbutton1), tooltips, "Add", NULL);
  

  toolbutton2 = (GtkWidget *) gtk_tool_button_new_from_stock ("gtk-find");
  gtk_container_add (GTK_CONTAINER (toolbar1), toolbutton2);
  gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (toolbutton2), tooltips, "Search", NULL);

  toolbutton3 = (GtkWidget *) gtk_tool_button_new_from_stock ("gtk-edit");
  gtk_container_add (GTK_CONTAINER (toolbar1), toolbutton3);
  gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (toolbutton3), tooltips, "Edit", NULL);

  toolbutton4 = (GtkWidget *) gtk_tool_button_new_from_stock ("gtk-save");
  gtk_container_add (GTK_CONTAINER (toolbar1), toolbutton4);
  gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (toolbutton4), tooltips, "Save", NULL);

  toolbutton5 = (GtkWidget *) gtk_tool_button_new_from_stock ("gtk-delete");
  gtk_container_add (GTK_CONTAINER (toolbar1), toolbutton5);
  gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (toolbutton5), tooltips, "Delete", NULL);
  
//工具条
  
                                  /*   hbox  start*/
  hbox1 = gtk_hbox_new (FALSE, 0);
  gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 0);
  
  
  statusbar = gtk_statusbar_new ();
  
//Treeview
  //创建treeview
  model = create_model ();
  treeview = gtk_tree_view_new_with_model (model);
  //创建栏目
  creat_columns (GTK_TREE_VIEW (treeview));

  //加载数据
  LoadFile();
  BuildTreeView(GTK_TREE_VIEW (treeview));
  
  gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE);  
  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));

  
  //滚动条1---treeview
  scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
  gtk_box_pack_start (GTK_BOX (hbox1), scrolledwindow1, FALSE, TRUE, 0);
  gtk_widget_set_size_request (scrolledwindow1, 160, -1);
  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_SHADOW_IN);
  gtk_container_add (GTK_CONTAINER (scrolledwindow1), treeview);
//  

  //GTK textview
  textview1 = gtk_text_view_new ();  
  gtk_text_view_set_editable (GTK_TEXT_VIEW (textview1), FALSE);
  gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (textview1), FALSE);
  gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (textview1), GTK_WRAP_CHAR);
  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview1)); 
  gtk_text_buffer_create_tag (buffer, "x-large","scale", PANGO_SCALE_X_LARGE, NULL);
  
  //滚动条2---textview
  scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL);
  gtk_box_pack_start (GTK_BOX (hbox1), scrolledwindow2, TRUE, TRUE, 0);
  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_SHADOW_IN);
  gtk_container_add (GTK_CONTAINER (scrolledwindow2), textview1);
                                /*   hbox  end    */
								
//状态栏								
  gtk_box_pack_start (GTK_BOX (vbox1), statusbar, FALSE, FALSE, 0);

  
  
  //设置回调函数
  g_signal_connect (window1, "destroy", G_CALLBACK (gtk_main_quit),NULL);
  g_signal_connect (selection, "changed", G_CALLBACK (GetSelect), treeview); 
  g_signal_connect (toolbutton1, "clicked", G_CALLBACK (add_people), treeview);
  g_signal_connect (toolbutton2, "clicked", G_CALLBACK (search_people), treeview);
  g_signal_connect (toolbutton3, "clicked", G_CALLBACK (edit_people), treeview);
  g_signal_connect (toolbutton4, "clicked", G_CALLBACK (SaveFile), NULL);
  g_signal_connect (toolbutton5, "clicked",G_CALLBACK (remove_item),treeview); 
  g_signal_connect (Add_a_1, "activate", G_CALLBACK (add_people), treeview);
  g_signal_connect (Edit_e_1, "activate", G_CALLBACK (edit_people),treeview);
  g_signal_connect (Find_f_1, "activate", G_CALLBACK (search_people),treeview);
  g_signal_connect (Delete_d_1, "activate", G_CALLBACK (remove_item),treeview);
  g_signal_connect (Quit_q_1, "activate", G_CALLBACK (gtk_main_quit),treeview);
 
  //快捷键组
  gtk_window_add_accel_group (GTK_WINDOW (window1), accel_group);
  
  gtk_widget_show_all (window1);
  
  //GTK_main
  gtk_main ();

  return 0;
}