restore.c

来自「ANFY特效」· C语言 代码 · 共 2,021 行 · 第 1/5 页

C
2,021
字号
#include <gtk/gtk.h>#include <string.h>#include <stdlib.h>#include <stdio.h>#include "main.h"#include "custom.h"#include "support.h"#include "callback.h"#include "misc.h"#define GetRValue(rgb)  ((guint8)(rgb))#define GetGValue(rgb)  ((guint8)(((guint16)(rgb)) >> 8))#define GetBValue(rgb)  ((guint8)((rgb)>>16))  #define _ttoi(s) strtol(s, NULL, 10)#define MAX_SCROLLTEXT_SIZE         32767int GeneratePreviewFile (const int applet, int bForPublish);// =========================================================char* GenerateHtmlAppletTag (int applet);#define READ_INT(n, i) { \    GetSavedVar(ini_section, n, strtmp); \    i = strtol(strtmp, NULL, 10); }#define READ_UL(n, i) { \    GetSavedVar(ini_section, n, strtmp); \    i = strtoul(strtmp, NULL, 16); }#define READ_ENTRY(n, w) { \    GetSavedVar(ini_section, n, strtmp); \    gtk_entry_set_text (GTK_ENTRY (lookup_widget (main_dlg, w)), strtmp); }#define READ_ENTRY_INT(n, w, i) { \    GetSavedVar(ini_section, n, strtmp); \    gtk_entry_set_text (GTK_ENTRY (lookup_widget (main_dlg, w)), strtmp); \    i = strtol(strtmp, NULL, 10); }#define READ_CHECK(n, w) { \    widget = lookup_widget (main_dlg, w); \    GetSavedVar (ini_section, n, strtmp); \    if (strcmp (strtmp, INI_NO) == 0) \      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE); \    else \      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); }// =========================================================GdkPixmap *folder0_pixmap, *folder1_pixmap, *item_pixmap;GdkBitmap *folder0_mask, *folder1_mask, *item_mask;#define PACKAGE_DATA_DIR "/usr/local/share/anfy"void create_tree_pixmaps (){   GtkStyle *style;   style = gtk_widget_get_style (main_dlg);   if (folder0_pixmap == NULL)   {     folder0_pixmap = gdk_pixmap_create_from_xpm (main_dlg->window, &folder0_mask,						  &style->bg[GTK_STATE_NORMAL],						  PACKAGE_DATA_DIR "/pixmaps/folder0.xpm");   }   if (folder1_pixmap == NULL)   {     folder1_pixmap = gdk_pixmap_create_from_xpm (main_dlg->window, &folder1_mask,						  &style->bg[GTK_STATE_NORMAL],						  PACKAGE_DATA_DIR "/pixmaps/folder1.xpm");   }   if (item_pixmap == NULL)   {     item_pixmap = gdk_pixmap_create_from_xpm (main_dlg->window, &item_mask,					       &style->bg[GTK_STATE_NORMAL],					       PACKAGE_DATA_DIR "/pixmaps/tree_ite.xpm");   }}void RestoreTreeCtrl (char* strINISection, GtkCTree* ptc, GtkCTreeNode* item, char x, char y, char* pcLink, char cParent){  char strCaption[256], strLabel[256], strItem[256], *row[2] = { NULL, NULL };  GtkCTreeNode* newItem;  ITEM_DATA* pItemData;  gboolean bBack=FALSE;  create_tree_pixmaps ();  sprintf (strCaption, "%s%c%c", INI_MENU_TEXT_, x, y);  GetSavedVar(strINISection, strCaption, strItem );  if (strlen (strItem) == 0)    return;  strcpy (strLabel, strItem);  row[0] = strLabel;  newItem = gtk_ctree_insert_node (ptc, item, NULL, row, 5, item_pixmap, item_mask,				   item_pixmap, item_mask, TRUE, FALSE);  sprintf (strCaption, "%s%c%c", INI_MENU_URL_, x, y);  GetSavedVar(strINISection, strCaption, strItem );  pItemData = malloc (sizeof (ITEM_DATA));  if (pItemData != NULL)  {    strcpy (pItemData->strURL, strItem);    sprintf (strCaption, "%s%c%c",INI_MENU_TARGET_, x, y);    GetSavedVar(strINISection, strCaption, strItem );    if (strlen (strItem) != 0)      pItemData->bNewFrame =TRUE;    else      pItemData->bNewFrame =FALSE;    strcpy (pItemData->strNewFrameName, strItem);    pItemData->bBack = bBack;    pItemData->bDisableDropAfter=FALSE;    gtk_ctree_node_set_row_data (ptc, newItem, pItemData);  }  sprintf (strCaption, "%s%c%c", INI_MENU_LINK_, x, y);  GetSavedVar(strINISection, strCaption, strItem );    if (strlen (strItem) != 0)  {    //e' un link all'indietro    if (strItem[0] == cParent)    {      if( pItemData != NULL )	{	  pItemData->bBack = TRUE;	  gtk_ctree_node_set_row_data (ptc, newItem, pItemData);	}    }    else    {      gtk_ctree_set_node_info (ptc, newItem, strLabel, 5,			       folder0_pixmap, folder0_mask,			       folder1_pixmap, folder1_mask,			       FALSE, FALSE);      *pcLink = strItem[0];      RestoreTreeCtrl(strINISection, ptc, newItem, *pcLink, '0', pcLink, x);      sprintf (strCaption, "%s%c%c",INI_MENU_STATE, x, y);      GetSavedVar(strINISection, strCaption, strItem );      if (strcmp (strItem, "1") == 0)	gtk_ctree_expand (ptc, newItem);    }  }  RestoreTreeCtrl(strINISection, ptc, item, x, GetMenuLinkNext(applet_info[current_applet].name, y), pcLink, cParent);}void RestoreTreeMenu(char* strINISection, GtkCTree* ptc, GtkCTreeNode* item, guint32* pidMenu, guint32 idLevel){  char strCaption[256], strItem[256], *row[2] = { NULL, NULL };  GtkCTreeNode* newItem;  ITEM_DATA* pItemData;  guint32 idMenuSave;  create_tree_pixmaps ();  sprintf (strCaption, "%s%d",INI_MENU_LEVEL_, *pidMenu);  GetSavedVar(strINISection, strCaption, strItem);  if( idLevel != (guint32)_ttoi(strItem) )    {      --(*pidMenu);      return;    }  sprintf (strCaption, "%s%d", INI_MENU_TEXT_, *pidMenu);  GetSavedVar(strINISection, strCaption, strItem );  if (strlen (strItem) == 0)    {      --(*pidMenu);      return;    }  row[0] = strItem;  newItem =gtk_ctree_insert_node (ptc, item, NULL, row, 5, folder0_pixmap, folder0_mask,				  folder1_pixmap, folder1_mask, FALSE, FALSE);  pItemData = malloc (sizeof (ITEM_DATA));  if (pItemData != NULL)  {    sprintf (strCaption, "%s%d", INI_MENU_ICON_, *pidMenu);    GetSavedVar(strINISection, strCaption, strItem );		    if (strlen (strItem) == 0)      pItemData->iIconIndex = -1;    else      pItemData->iIconIndex = _ttoi(strItem);    sprintf (strCaption, "%s%d", INI_MENU_URL_, *pidMenu);    GetSavedVar(strINISection, strCaption, strItem );    strcpy (pItemData->strURL, strItem);    pItemData->bBack=FALSE;    pItemData->bNewFrame=FALSE;    if( idLevel==0 )      pItemData->bDisableDropAfter=TRUE;    else      pItemData->bDisableDropAfter=FALSE;    strcpy (pItemData->strNewFrameName, "");    gtk_ctree_node_set_row_data (ptc, newItem, pItemData);  }  idMenuSave=*pidMenu;  sprintf (strCaption, "%s%d", INI_MENU_LINK_, *pidMenu);  GetSavedVar(strINISection, strCaption, strItem );  if (strlen (strItem) != 0)    {      /*	ptc->SetItemImage( newItem, TV_IMG_FOLDER_CLOSE, TV_IMG_FOLDER_CLOSE);      */      *pidMenu=(guint32)_ttoi(strItem);      RestoreTreeMenu(strINISection, ptc, newItem, pidMenu , idLevel+1);    }  sprintf (strCaption, "%s%d", INI_MENU_STATE, idMenuSave);  GetSavedVar(strINISection, strCaption, strItem );  if (strcmp (strItem, "1") == 0)    {      gtk_ctree_expand (ptc, newItem);    }  ++(*pidMenu);  RestoreTreeMenu(strINISection, ptc, item, pidMenu, idLevel );}// =========================================================void restore_dialog_data (int usedefault){  char strtmp[1024], ini_section[64], section[64], tmp[8], *row[2] = { NULL, NULL };  GtkWidget* widget;  IMAGE_INFO* info;  int index;  if (current_applet != -1)  {    strcpy (ini_section, applet_info[current_applet].name);    if (usedefault)      strcat (ini_section, INI_SECTION_DEFAULT);  }  /*	CComboBox* pcbo;	CString strIndex;	CString strImage;	CString strIniValue;	m_bRestoreData=TRUE;  */  switch (current_dialog)  {  case DLG_STEP0:    GetSavedVar(INI_APP_SECTION, INI_LAST_APPLET_CATEGORY, strtmp);    if (strcmp (strtmp, "1") == 0)      widget = lookup_widget (main_dlg, "cat_banner");    else if (strcmp (strtmp, "2") == 0)      widget = lookup_widget (main_dlg, "cat_fractals");    else if (strcmp (strtmp, "3") == 0)      widget = lookup_widget (main_dlg, "cat_image");    else if (strcmp (strtmp, "4") == 0)      widget = lookup_widget (main_dlg, "cat_3d");    else if (strcmp (strtmp, "5") == 0)      widget = lookup_widget (main_dlg, "cat_navigation");    else      widget = lookup_widget (main_dlg, "cat_other");    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);    GetSavedVar(INI_APP_SECTION, INI_LAST_APPLET_CONFIGURED, strtmp);    widget = lookup_widget (main_dlg, "applet_entry");    gtk_entry_set_text (GTK_ENTRY (widget), strtmp);    break;  case DLG_TEXTSTYLE:    READ_ENTRY (INI_TEXTMODE, "text_type_entry");    /*      OnSelchangeTexttype();    */    {      char pszScrollText[MAX_SCROLLTEXT_SIZE];      widget = lookup_widget (main_dlg, "text");      if (ReadWriteFileScrollText(current_applet, pszScrollText, 0))      {	gtk_text_insert (GTK_TEXT (widget), NULL, NULL, NULL,			 pszScrollText, strlen(pszScrollText));	gtk_adjustment_set_value (GTK_TEXT(widget)->vadj, 0);      }      else	gtk_text_insert (GTK_TEXT (widget), NULL, NULL, NULL, "", 0);    }    READ_ENTRY (INI_TEXTVSPACE, "v_spac");    READ_ENTRY (INI_TEXTSPEED, "speed");    READ_ENTRY (INI_TEXTOFFSET, "y_offset");    READ_ENTRY (INI_TEXTSINANGLE, "sine_angle");    READ_ENTRY (INI_TEXTSINEAMPL, "sine_amplitude");    READ_ENTRY (INI_TEXTSINSPEED, "sine_speed");    READ_ENTRY (INI_TEXTJUMPAMP, "jump_amplitude");    READ_ENTRY (INI_TEXTJUMPSPEED, "jump_speed");    READ_CHECK (INI_TEXTSHADOW, "shadow");    /*      OnChkShadow();    */    READ_INT (INI_TEXT_COLORRED, dlg_textcolor_red);    READ_INT (INI_TEXT_COLORGREEN, dlg_textcolor_green);    READ_INT (INI_TEXT_COLORBLU, dlg_textcolor_blue);    //    READ_CHECK (INI_STANDARD_FONT, "standard");    /*      OnChkStdFont();    */    READ_ENTRY (INI_TEXT_FONT, "font_entry");    READ_ENTRY (INI_TEXT_SIZE, "size_entry");    READ_ENTRY (INI_TEXT_SIZE_MIN, "min_entry");    READ_ENTRY (INI_TEXT_SIZE_MAX, "max_entry");    READ_CHECK (INI_TEXT_ITALIC, "italic");    READ_CHECK (INI_TEXT_BOLD, "bold");    READ_INT (INI_TEXTS_COLORRED, dlg_textscolor_red);    READ_INT (INI_TEXTS_COLORGREEN, dlg_textscolor_green);    READ_INT (INI_TEXTS_COLORBLU, dlg_textscolor_blue);    /*      UpdatePreviewScrollText();    */    break;  case DLG_STEP1:  {    char* tag;    tag = GenerateHtmlAppletTag(current_applet);    gtk_text_insert (GTK_TEXT (lookup_widget (main_dlg, "code")),		     NULL, NULL, NULL, tag, strlen(tag));    g_free(tag);    GeneratePreviewFile(current_applet, 0);  } break;  case DLG_EXPERTMODE:    READ_ENTRY (INI_EX_MEMDELAY, "memory");    READ_ENTRY (INI_EX_TASK_PRIORITY, "task");    READ_ENTRY (INI_EX_MINSYNC, "minsync");    widget = lookup_widget (main_dlg, "netscape");    GetSavedVar(ini_section, INI_FIXNETSCAPE, strtmp);    if (strcmp (strtmp, INI_YES) == 0)      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);    else      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);    if ((current_applet == APPLET_CUBEMENU) ||	(current_applet == APPLET_ANFADE) ||	(current_applet == APPLET_BOOKFLIP) ||	(current_applet == APPLET_MOSAIC) ||	(current_applet == APPLET_WHEEL) ||	(current_applet == APPLET_MORPHMENU) ||	(current_applet == APPLET_TREEMENU))    {      widget = lookup_widget (main_dlg, "statusbar");      gtk_entry_set_text (GTK_ENTRY (widget), "");      gtk_widget_set_sensitive (widget, FALSE);    }    else      READ_ENTRY (INI_STATUSMSG, "statusbar");    READ_ENTRY (INI_NOJAVAMSG, "nojava");    GetSavedVar(ini_section, INI_OVERIMG, strtmp);    if (strcmp (strtmp, INI_NO) == 0)    {      widget = lookup_widget (main_dlg, "image");      gtk_entry_set_text (GTK_ENTRY (widget), "");      widget = lookup_widget (main_dlg, "enable_image");      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);    }    else    {      READ_ENTRY (INI_OVERIMG, "image");      widget = lookup_widget (main_dlg, "enable_image");      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);    }    READ_ENTRY (INI_OVERIMGX, "xoffset");    READ_ENTRY (INI_OVERIMGY, "yoffset");    break;    /*		case DLG_REGCODE:    */  case DLG_REGISTRATION:

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?