亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? search_window.c,v

?? Perfession Linux Programming examples
?? C,V
字號:
head	1.1;
access;
symbols;
locks
	cbbrowne:1.1; strict;
comment	@ * @;


1.1
date	2000.06.09.03.39.32;	author cbbrowne;	state Exp;
branches;
next	;


desc
@@


1.1
log
@Initial revision
@
text
@/* 
 * search_window.c
 *
 */

#ifdef HAVE_CONFIG_H
#  include <config.h>
#endif

#include <gnome.h>

#include "callbacks.h"
#include "interface.h"
#include "support.h"
#include "dvd.h"
#include "misc.h"
#include "dvd_gui.h"

enum search_page {
  TITLE_PAGE,
  MEMBER_PAGE,
  DISK_PAGE };

enum _member_search_type {
  MEMBER_NO,
  LAST_NAME }
member_search_type;

static gint selected_row;


void
do_search_dialog()
{
  GtkWidget *member_optionmenu;
  GtkWidget *member_menu;

  if (search_window != NULL)
    { 
      gtk_widget_show(search_window);
    }
  else
    {
      /* Call the glade created function to create
       * the dialog, setup optionmenus and connect callbacks
       */

      search_window = create_search_window ();

      member_optionmenu = lookup_widget (search_window, "member_optionmenu");
      member_menu = create_member_optionmenu();
      
      gtk_option_menu_remove_menu (GTK_OPTION_MENU(member_optionmenu));
      gtk_option_menu_set_menu(GTK_OPTION_MENU(member_optionmenu), 
			       member_menu);
      member_search_type = MEMBER_NO;
      
      gtk_signal_connect(GTK_OBJECT(search_window),
			 "delete_event",
			 GTK_SIGNAL_FUNC(gtk_widget_hide),
			 &search_window);   
      gtk_window_set_default_size(GTK_WINDOW(search_window), 500, 500);
      update_search_window_preferences();
      gtk_widget_show (search_window);
    }
} 

void
update_title_search_clist() 
{
  dvd_title title;
  GtkCList *clist;
  gint count;
  gint id;
  gchar *text[10];
  
  count = g_slist_length(title_search_slist);
  
  clist = GTK_CLIST(lookup_widget(search_window,
				  "title_search_clist"));
  gtk_clist_clear(clist);
  gtk_clist_freeze (clist);

  while (count--) {
    id = GPOINTER_TO_INT (g_slist_nth_data(title_search_slist, count));
    dvd_title_get(id, &title);

    text[0] = g_strdup_printf("%d", id); 
    text[1] = title.title_text;
    text[2] = title.asin;
    text[3] = title.director;
    text[4] = title.genre;
    text[5] = title.classification;
    text[6] = title.actor1;
    text[7] = title.actor2;
    text[8] = title.release_date;
    text[9] = title.rental_cost;
  
    gtk_clist_prepend(clist, text);
  }

  gtk_clist_thaw (clist);
 
}

void
update_member_search_clist()

{

 dvd_store_member member;
  GtkCList *clist;
  gint count;
  gint id;
  gchar *text[11];
  
  count = g_slist_length(member_search_slist);
  
  clist = GTK_CLIST(lookup_widget(search_window,
				  "member_search_clist"));
  gtk_clist_clear(clist);
  
  gtk_clist_freeze (clist);
  while (count--) {
    id = GPOINTER_TO_INT (g_slist_nth_data(member_search_slist, count));
    dvd_member_get(id, &member);
    text[0] = member.member_no;  
    text[1] = member.title;
    text[2] = member.fname;
    text[3] = member.lname;
    text[4] = member.house_flat_ref;
    text[5] = member.address1;
    text[6] = member.address2;
    text[7] = member.town;
    text[8] = member.state;
    text[9] = member.phone;
    text[10] = member.zipcode;
  
    gtk_clist_prepend(clist, text);
  }
  gtk_clist_thaw (clist);
  
}

void
update_disk_search_clist()
{
  dvd_disk disk;
  dvd_title title;
  GtkCList *clist;
  gint count;
  gint id;
  gint member_id;
  gint result;
  gchar *text[3];
  gchar *date_rented;
  dvd_store_member member;

  date_rented = g_malloc(9);
  count = g_slist_length(disk_search_slist);
  
  clist = GTK_CLIST(lookup_widget(search_window,
				  "disk_search_clist"));
  gtk_clist_clear(clist);
  
  gtk_clist_freeze (clist);

  while (count--) 
    {
    id = GPOINTER_TO_INT (g_slist_nth_data(disk_search_slist, count));
    dvd_gui_show_result("dvd_disk_get", dvd_disk_get(id, &disk));
    dvd_gui_show_result("dvd_title_get", dvd_title_get(disk.title_id, &title));
    result = dvd_rented_disk_info(id, &member_id, date_rented);
 
    dvd_gui_show_result("dvd_member_get", dvd_member_get(member_id, &member));
   printf("memberid = %d\n", member_id);
    sprintf(text[0], "%d", disk.title_id);
    text[1] = title.title_text;
    sprintf(text[2], "%d", id);

    if (result == DVD_ERR_NOT_FOUND)
      text[3] = "";
    else
      text[3] = member.member_no;
   
    gtk_clist_prepend(clist, text);
    }
  gtk_clist_thaw (clist);
  g_free(date_rented);
}


void
on_search_clicked                      (GtkButton       *button,
                                        gpointer         user_data)
{
  /* Function to search in database 
   */
  GtkCList *clist;
  GtkWidget *entry1;
  GtkWidget *entry2;
  
  gchar *entry1_text;
  gchar *entry2_text;
  gchar member_no[6];
  gchar *appbar_text = NULL;

  gint diskid;
  gint i = 0;
  gint current_page;
  gint *ids;
  gint id;
  gint count;

  current_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (lookup_widget(GTK_WIDGET (button),
									    "search_notebook")));

  if (current_page == TITLE_PAGE) 
    {
      
      /* Search for a DVD Title
       */
      entry1 = lookup_widget(GTK_WIDGET (button), "title_entry");
      entry1_text = gtk_entry_get_text(GTK_ENTRY(gnome_entry_gtk_entry(GNOME_ENTRY(entry1))));
      entry2 = lookup_widget(GTK_WIDGET (button), "actor_entry");
      entry2_text = gtk_entry_get_text(GTK_ENTRY(gnome_entry_gtk_entry(GNOME_ENTRY(entry2))));
      
      dvd_gui_show_result("dvd_search", dvd_title_search(entry1_text, entry2_text, &ids, &count));
      
      clist = GTK_CLIST(lookup_widget(GTK_WIDGET(button), "title_search_clist"));
      
      
      appbar_text = g_strdup_printf(_("Found %d result(s) searching for \"%s\" with Actor/Director %s"), 
				    count, entry1_text, entry2_text);
      gnome_appbar_set_status(GNOME_APPBAR (lookup_widget(GTK_WIDGET (button), "search_appbar")), 
			      appbar_text);  
      /*gnome_entry_append_history (GNOME_ENTRY (entry1), TRUE, entry1_text);*/ 

      g_slist_free(title_search_slist);
      title_search_slist = NULL;
           
      while (count--) 
	title_search_slist = g_slist_append(title_search_slist, 
						   GINT_TO_POINTER(ids[i++]));
      update_title_search_clist();
      free(ids);
    }

  if (current_page == MEMBER_PAGE) 
    {
      /* Search for a member
       */
      entry1 = lookup_widget(GTK_WIDGET (button), "member_entry");
      entry1_text = gtk_entry_get_text(GTK_ENTRY(gnome_entry_gtk_entry(GNOME_ENTRY(entry1))));
      clist = GTK_CLIST(lookup_widget(GTK_WIDGET(button), "member_search_clist"));
      
      g_slist_free(member_search_slist);
      member_search_slist = NULL;

      if (member_search_type == MEMBER_NO) 
	{
	  strncpy(member_no, entry1_text, 6);
	  if (!dvd_member_get_id_from_number (member_no, &id)) 
	    {
	      count = 0;
	      member_search_slist = g_slist_append(member_search_slist, 
							  GINT_TO_POINTER(id));
	    }
	  else
	    count = 0;
	}
      else 
	dvd_gui_show_result("member_search", dvd_member_search(entry1_text, &ids, &count));
  
      appbar_text = g_strdup_printf("Found %d result(s) searching for \"%s\"", count, entry1_text);
      gnome_appbar_set_status(GNOME_APPBAR (lookup_widget(GTK_WIDGET (button), "search_appbar")), 
			      appbar_text);  
      /*gnome_entry_append_history (GNOME_ENTRY (entry1), TRUE, entry1_text);*/ 

      while (count--) 
	member_search_slist = g_slist_append(member_search_slist, 
						    GINT_TO_POINTER(ids[i++]));
       
      update_member_search_clist();
      if (member_search_type == LAST_NAME)
	free(ids);
    }

    if (current_page == DISK_PAGE) 
      {
     
	/* Search for a Disk
	 */
	entry1 = lookup_widget(GTK_WIDGET (button), "diskid_spinbutton");
	diskid = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (entry1));
	clist = GTK_CLIST(lookup_widget(GTK_WIDGET(button), "disk_search_clist"));
	
	dvd_gui_show_result("disk_search", dvd_disk_search(diskid, &ids, &count));
	
	g_slist_free(disk_search_slist);
	disk_search_slist = NULL; 
      
	appbar_text = g_strdup_printf("Found %d Disk(s) for Title ID %d", count, diskid );
	gnome_appbar_set_status(GNOME_APPBAR (lookup_widget(GTK_WIDGET (button), "search_appbar")), 
				appbar_text);  
      
	while (count--) 
	  disk_search_slist = g_slist_append(disk_search_slist, 
						    GINT_TO_POINTER(ids[i++]));
	update_disk_search_clist();   
   
      }
    g_free(appbar_text);  
}

void 
on_search_close_clicked                (GtkButton      *button,
					gpointer        user_data)
{
  gtk_widget_hide(search_window);
}

void
on_search_clear_clicked                (GtkButton       *button,
                                        gpointer         user_data)
{
  gint current_page;
  GtkWidget *search_notebook;
  GtkWidget *clist = NULL;
  
  search_notebook = lookup_widget (GTK_WIDGET (button), "search_notebook");
  current_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (search_notebook));

  switch (current_page)
    {
    case TITLE_PAGE:
      clist = lookup_widget (GTK_WIDGET (button), "title_search_clist");
      break;
    case MEMBER_PAGE: 
      clist = lookup_widget (GTK_WIDGET (button), "member_search_clist");
      break;
    case DISK_PAGE:
      clist = lookup_widget (GTK_WIDGET (button), "disk_search_clist");
      break;
    default: 
      g_assert_not_reached();
    }
  gtk_clist_clear (GTK_CLIST (clist));
  gnome_appbar_set_status(GNOME_APPBAR (lookup_widget(GTK_WIDGET (button), 
						      "search_appbar")), "Cleared");

}

gboolean
on_dvd_search_clist_button_press_event (GtkWidget       *widget,
                                        GdkEventButton  *event,
                                        gpointer         user_data)
{
  GtkWidget *menu;
  GtkCList *clist;
  gint row, column;

  g_return_val_if_fail(widget != NULL, FALSE);

  menu = create_dvd_popup_menu();
  if (event->type == GDK_BUTTON_PRESS) 
    {
      GdkEventButton *buttonevent = (GdkEventButton *) event;
    
      if ( buttonevent->button == 3 ) 
	{
	  clist = GTK_CLIST(widget);
	  if (gtk_clist_get_selection_info(clist, 
					   buttonevent->x,
					   buttonevent->y,
					   &row,
					   &column)) {
     
	    gtk_clist_select_row(clist, row, column);
	    selected_row = row;

	    gtk_menu_popup ( GTK_MENU (menu), NULL, NULL, NULL, NULL, buttonevent->button, 0 ); 
	    return TRUE;
	  }
	}
    }
  return FALSE;
}


void
on_search_menu_rent_activate           (GtkMenuItem     *menuitem,
                                        gpointer         user_data)
{
  gint current_page;
  gint id;

  dvd_store_member member;

  current_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (lookup_widget(search_window,
									    "search_notebook")));
  if (current_page == TITLE_PAGE) 
    {
      g_return_if_fail (title_search_slist != NULL);
      id = GPOINTER_TO_INT(g_slist_nth_data(title_search_slist,
					    selected_row));
      do_rent_dvd_dialog(NULL, id);
    }
  if (current_page == MEMBER_PAGE) {
    g_return_if_fail (member_search_slist != NULL); 
    id = GPOINTER_TO_INT(g_slist_nth_data(member_search_slist,
					  selected_row));
    dvd_member_get(id, &member);  
    do_rent_dvd_dialog(member.member_no, 0);
  }
}


void
on_search_menu_edit_activate           (GtkMenuItem     *menuitem,
                                        gpointer         user_data)
{
 gint current_page;
 gint id;
  g_return_if_fail (search_window != NULL);

  current_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (lookup_widget(search_window,
									    "search_notebook")));
  if (current_page == TITLE_PAGE) 
    {
     g_return_if_fail (title_search_slist != NULL);     
    id = GPOINTER_TO_INT(g_slist_nth_data(title_search_slist,
					  selected_row));
    do_dvd_dialog(id);
    }
  if (current_page == MEMBER_PAGE) 
    {
      g_return_if_fail (member_search_slist != NULL);
      id = GPOINTER_TO_INT(g_slist_nth_data(member_search_slist,
					    selected_row));
      do_member_dialog(id);
    }
}

void
on_search_menu_delete_activate         (GtkMenuItem     *menuitem,
                                        gpointer         user_data)
{
  GtkWidget *dialog;
  gint id;
  gint reply;
  gint current_page;

  g_return_if_fail (search_window != NULL);

  current_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (lookup_widget(search_window,
							      "search_notebook")));
  if (current_page == TITLE_PAGE) 
    {
      g_return_if_fail (title_search_slist != NULL);
      id = GPOINTER_TO_INT(g_slist_nth_data(title_search_slist,
					    selected_row));
      dialog = gnome_message_box_new(_("Delete this Title?"),
				     GNOME_MESSAGE_BOX_QUESTION,
				     GNOME_STOCK_BUTTON_YES,
				     GNOME_STOCK_BUTTON_NO,
				     NULL);
      gtk_widget_show(dialog);
      reply = gnome_dialog_run(GNOME_DIALOG(dialog));
    
      if (reply == GNOME_OK) {
	dvd_title_delete(id);
	title_search_slist = g_slist_remove (title_search_slist,
					     GINT_TO_POINTER(id));
	update_title_search_clist();
      }
  }
  if (current_page == MEMBER_PAGE) 
    {
      g_return_if_fail (member_search_slist != NULL); 
      id = GPOINTER_TO_INT(g_slist_nth_data(member_search_slist,
					    selected_row));
      dialog = gnome_message_box_new(_("Delete this Member?"),
				     GNOME_MESSAGE_BOX_QUESTION,
				     GNOME_STOCK_BUTTON_OK,
				     GNOME_STOCK_BUTTON_CANCEL,
				     NULL);
      reply = gnome_dialog_run(GNOME_DIALOG(dialog));
      
      if (reply == GNOME_OK) 
	{
	  dvd_member_delete(id);
	  member_search_slist = g_slist_remove (member_search_slist,
						GINT_TO_POINTER(id));
	  update_member_search_clist();
	}
    }
}

void
on_search_menu_reserve_activate        (GtkMenuItem     *menuitem,
                                        gpointer         user_data)
{

}

void
on_member_activate                    (GtkMenuItem *menuitem,
                                       gpointer    user_data)
{
  member_search_type = MEMBER_NO;
}

void 
on_last_name_activate                (GtkMenuItem *menuitem,
				      gpointer    user_data)
{
  member_search_type = LAST_NAME;
}














@

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产精品亚洲红杏| 欧美顶级少妇做爰| kk眼镜猥琐国模调教系列一区二区| 91婷婷韩国欧美一区二区| 欧美一区二区在线不卡| 亚洲色图制服丝袜| 国产一区二区三区美女| 欧美日韩激情一区| 亚洲国产成人av好男人在线观看| 99久久国产综合精品色伊 | 欧美变态凌虐bdsm| 亚洲3atv精品一区二区三区| 成人一区二区三区在线观看| 久久日韩精品一区二区五区| 韩国av一区二区三区四区| 日韩天堂在线观看| 国产一区日韩二区欧美三区| 日本视频中文字幕一区二区三区| 久久亚洲捆绑美女| 日韩一区二区三区视频在线| 国产精品国产馆在线真实露脸 | 99久久综合99久久综合网站| 日韩午夜在线播放| 亚洲成av人片在线| 99久久精品国产一区二区三区| 久久久精品国产免费观看同学| 精品国产凹凸成av人导航| 91麻豆精品秘密| 久久精品国内一区二区三区| 国产午夜精品福利| 欧美成人女星排名| 99久久国产综合精品麻豆| 免费的成人av| 亚洲综合无码一区二区| 在线视频综合导航| 欧美日韩国产一级二级| 国产女人aaa级久久久级 | 亚洲第一搞黄网站| 亚洲人精品午夜| 日精品一区二区| 久久97超碰色| 不卡一区二区中文字幕| 日本电影亚洲天堂一区| 精品污污网站免费看| 91精品久久久久久蜜臀| 久久精品在线免费观看| 亚洲成av人片一区二区三区| 国产剧情一区在线| 精品一二三四区| 91在线国内视频| 欧美成人性战久久| 亚洲免费观看高清| 激情丁香综合五月| 欧美日韩成人激情| 自拍偷拍亚洲综合| 国产成a人亚洲精| 日韩精品在线看片z| 日韩三级视频在线看| 久久欧美一区二区| 日本欧洲一区二区| 91网站在线观看视频| 日韩精品一区二区三区三区免费| 国产精品久久看| 国产一区二区精品久久91| 欧美老人xxxx18| 天天免费综合色| 欧美一级二级在线观看| 欧美精品一区二区三区蜜桃 | 国产精品一区二区果冻传媒| 欧美一区二区日韩| 五月天丁香久久| 色婷婷av久久久久久久| 国产精品三级在线观看| 国产另类ts人妖一区二区| 久久综合久久综合久久| 精品一区二区三区影院在线午夜| 日韩欧美资源站| 2024国产精品视频| 亚洲成人综合在线| 91精品国产欧美一区二区成人| 五月综合激情网| 精品日韩一区二区| 懂色av一区二区三区蜜臀| 中文字幕在线观看一区| 国产成人精品一区二区三区四区 | 精品一区二区三区在线视频| 日韩vs国产vs欧美| 日韩欧美中文一区二区| 国产成人av电影免费在线观看| 中文字幕精品一区二区三区精品| 91在线观看污| 玖玖九九国产精品| 欧美国产一区在线| 欧美日韩一本到| 91在线免费看| 香蕉av福利精品导航| 精品无码三级在线观看视频| 国产精品丝袜久久久久久app| 欧美日韩在线免费视频| 高清beeg欧美| 日韩精品欧美精品| 亚洲精品久久久久久国产精华液| 国产精品灌醉下药二区| 国产成人午夜视频| 亚洲综合999| 精品视频一区二区不卡| 99久久精品免费| 国产一区二区精品久久99| 亚洲欧美偷拍另类a∨色屁股| 日韩精品一区二区三区四区视频| 91麻豆精品国产| 久久午夜羞羞影院免费观看| 亚洲国产成人自拍| 久久久久久久久久电影| 欧美精品一区二| 亚洲天堂av老司机| 免费成人在线网站| 曰韩精品一区二区| 久久精品国产**网站演员| 国产成人一区在线| 欧美一区二区在线免费观看| 国产精品国产三级国产三级人妇| 爽好久久久欧美精品| 成人精品视频一区二区三区| 日韩欧美国产一区二区三区| 亚洲欧美视频在线观看视频| 久久国产精品72免费观看| 99视频热这里只有精品免费| 欧美日韩一区国产| 久久精品一区二区三区av| 亚洲欧美偷拍卡通变态| 亚洲免费成人av| 天天av天天翘天天综合网 | 久久国产生活片100| 日韩av电影免费观看高清完整版| 美女在线观看视频一区二区| 国产成人av电影在线观看| 精品女同一区二区| 国产一区视频在线看| 国产精品萝li| 色综合天天狠狠| 亚洲成av人**亚洲成av**| 免费观看在线色综合| 国产大陆亚洲精品国产| 在线综合视频播放| 久久蜜桃一区二区| 日韩二区在线观看| 欧美在线999| 一区二区三区四区不卡在线| 国产美女视频91| 精品久久一区二区三区| 日韩一区精品视频| 欧美日韩二区三区| 一区二区在线观看av| www.色精品| 自拍偷拍欧美激情| 色综合久久88色综合天天免费| 国产视频一区二区在线观看| 偷拍一区二区三区四区| 精品久久人人做人人爽| 成人av电影观看| 亚洲国产欧美在线人成| 久久久91精品国产一区二区精品| 国产成人av资源| 亚洲va中文字幕| 国产欧美一区二区精品仙草咪| 色婷婷综合久色| 久久精品国产99| 亚洲国产日韩综合久久精品| 日韩免费高清av| 在线看不卡av| 国产经典欧美精品| 麻豆国产一区二区| 亚洲男同1069视频| 国产精品福利电影一区二区三区四区| 在线视频你懂得一区| 国产成人av资源| 精品亚洲欧美一区| 亚洲成人av在线电影| 亚洲色图20p| 国产欧美一区二区精品婷婷| 日韩美一区二区三区| 国产乱码精品一区二区三区忘忧草 | 欧美草草影院在线视频| 欧美日韩1区2区| 欧美猛男男办公室激情| 欧美军同video69gay| 在线观看91av| 91麻豆国产自产在线观看| 亚洲综合免费观看高清完整版在线| 国产精品超碰97尤物18| 国产精品无码永久免费888| 久久精品一区八戒影视| 久久久九九九九| 国产精品乱码一区二三区小蝌蚪| 欧美激情一区二区在线| 亚洲精品免费在线观看| 日产精品久久久久久久性色| 激情久久五月天| 欧美亚洲另类激情小说|