html.c

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

C
1,526
字号
#include <gtk/gtk.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include "custom.h"#include "main.h"#include "support.h"#include "misc.h"#define HTML_PREVIW_PAGE		"preview.html"#define GIF_ANFY_LINK			"ajbut1.gif"#define CHARSET_DEFAULT			"iso-8859-1"// =========================================================#define _ttoi(s) strtol(s, NULL, 10)#define _tcstoul strtoul#define GetRValue(rgb)  ((guint8)(rgb))#define GetGValue(rgb)  ((guint8)(((guint16)(rgb)) >> 8))#define GetBValue(rgb)  ((guint8)((rgb)>>16))  void restore_dialog_data (int usedefault);int validate_fields (GtkWidget *dlg);void save_dialog_data ();void file_browse (char* caption, char** filename);// =========================================================static char* mycat(char* a, char* b){  char* str;  int l;  if (a)    l = strlen (a);  else    l = 0;  l += strlen (b) + 1;  str = g_malloc (l);  strcpy (str, a);  strcat (str, b);  g_free (a);  return str;}// =========================================================gboolean SetAppletProject(const int applet){  GtkWidget *entry;  entry = lookup_widget (main_dlg, "applet_entry");  switch (applet)  {  case APPLET_BOOKFLIP:  case APPLET_MOSAIC:  case APPLET_ANFADE:    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lookup_widget (main_dlg, "cat_banner")), TRUE);    gtk_entry_set_text (GTK_ENTRY (entry), applet_info[applet].name);    return TRUE;  case APPLET_FLOZOIDS:  case APPLET_ANFRACT:  case APPLET_MANDEL:  case APPLET_LIFE2D:    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lookup_widget (main_dlg, "cat_fractals")), TRUE);    gtk_entry_set_text (GTK_ENTRY (entry), applet_info[applet].name);    return TRUE;  case APPLET_ANFYBUMP:  case APPLET_DEFORM:     case APPLET_HUEROT:     case APPLET_ANLAKE:     case APPLET_ANLENS:	   case APPLET_WARP:       case APPLET_ROTATE:     case APPLET_ANWATER:  case APPLET_WOBBLER:  case APPLET_ANFYSNOW:  case APPLET_FIREWORKS:    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lookup_widget (main_dlg, "cat_image")), TRUE);    gtk_entry_set_text (GTK_ENTRY (entry), applet_info[applet].name);    return TRUE;  case APPLET_WORMHOLE:   case APPLET_ANVOXEL:	   case APPLET_TUNNEL3D:   case APPLET_ANTUNNEL:   case APPLET_TMAPCUBE:   case APPLET_FLUID:      case APPLET_GALAXY:     case APPLET_ANFY3D:       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lookup_widget (main_dlg, "cat_3d")), TRUE);    gtk_entry_set_text (GTK_ENTRY (entry), applet_info[applet].name);    return TRUE;  case APPLET_CUBEMENU:  case APPLET_WHEEL:	  case APPLET_MORPHMENU:	  case APPLET_TREEMENU:	    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lookup_widget (main_dlg, "cat_navigation")), TRUE);    gtk_entry_set_text (GTK_ENTRY (entry), applet_info[applet].name);    return TRUE;  case APPLET_ANBLUR:     case APPLET_ANFLAG:     case APPLET_BLOBS:      case APPLET_FIRE:       case APPLET_FLAGLOAD:   case APPLET_PLASMA:     case APPLET_TSCROLLER:  case APPLET_ANFYCAM:  case APPLET_ANFYPAINT:  case APPLET_SOLIDSCROLLER:    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lookup_widget (main_dlg, "cat_other")), TRUE);    gtk_entry_set_text (GTK_ENTRY (entry), applet_info[applet].name);    return TRUE;  default:    return FALSE;  }}typedef struct _RegistryEntry{  char     name[128];  guint32  type;  char     value[512];  guint32  valueSize;  char     filler[64];} RegistryEntry;#define PRJ_FILE_HEADER_14   "A J P 1 4"int OpenProjectOld(char* a_pstrPathName){  return -1;  /*	CString strPathName;	strPathName = a_pstrPathName;	CString strApplet;	TCHAR szBuffer[MAX_LENGTH_INI_STR_VAR];	if( GetPrivateProfileSectionNames( szBuffer, MAX_LENGTH_INI_STR_VAR, strPathName) == (MAX_LENGTH_INI_STR_VAR - 2) )		return -1;	else		strApplet = szBuffer;	if( strApplet.GetLength() == 0 )		return -1;	if (current_dialog != DLG_STEP0)	{		//sto cercando i caricare un progetto di un applet diversa 		//da quella corrente		if( m_strCurrentApplet != strApplet)			return 0;	}	else	{		m_strCurrentApplet = szBuffer;	}	const nSize=32767;	TCHAR szStr[nSize];	memset(szStr, (TCHAR)NULL, nSize);	unsigned int ret = GetPrivateProfileSection( strApplet, szStr, nSize, strPathName );	if(  ret == ( nSize - 2) )		return -1;	CString strKeyPath(INI_REG_PATH_SETTING);	strKeyPath+=_T("\\");	strKeyPath+=m_strCurrentApplet;	HKEY hKey;	RegistryEntry RegEntry;	int iRet=1;	if( RegOpenKeyEx(HKEY_CURRENT_USER, strKeyPath, 0, KEY_WRITE, &hKey) == ERROR_SUCCESS )	{		int i=0;		int i1;		while( !(szStr[i] == '\0' && szStr[i+1] == '\0') )		{			if( szStr[i] == '\0' )				i++;			memset((LPVOID)&RegEntry, 0, sizeof RegistryEntry);			for( i1=0; szStr[i]!='='; i++)			{				RegEntry.name[i1]=szStr[i];				i1++;			}			i++;			for( i1=0; szStr[i]!='\0'; i++)			{				RegEntry.value[i1]=szStr[i];				i1++;			}			RegEntry.type=REG_SZ;			RegEntry.valueSize=lstrlen((LPCTSTR)RegEntry.value);            //////////////////////////////////////////////////            //questo e' una fix, per sistemare il fatto che nei progetti salvati            //nella 1.3 nel treemenu c'e' un paramentro TexSize che e' a 84            //e che nella 1.3 non ha senso ma siccome nelle versioni successive viene            //utilizzato da effetti non molto sgradevoli, per cui viene forzato a 11            //////////////////////////////////////////////////            if(    m_strCurrentApplet==APPLET_TREEMENU                && lstrcmp(RegEntry.name, INI_TEXT_SIZE) == 0 )            {                _itot(11, (TCHAR*)RegEntry.value, 10);            }            //////////////////////////////////////////////////			if( RegSetValueEx(hKey							 ,RegEntry.name							 ,0							 ,RegEntry.type							 ,LPBYTE(RegEntry.value)							 ,RegEntry.valueSize) 							 != ERROR_SUCCESS )			{				iRet=-1;				break;			}		}		RegCloseKey(hKey);	}	else		iRet=-1;	return iRet;  */}// =========================================================char* TranslateMenuSettingInHTML(char* applet_name, char* applet_tag, char x, char y, char cParent){  char strCaption[256], strLine[256], strItem[256];  sprintf (strCaption, "%s%c%c", INI_MENU_TEXT_, x, y);  GetSavedVar(applet_name, strCaption, strItem );  if (strlen (strItem) == 0)    return applet_tag;  sprintf (strLine, "<param name=\"MenuText%c%c\" value=\"%s\">\r\n",x, y, strItem);  applet_tag = mycat (applet_tag, strLine);  sprintf (strCaption, "%s%c%c",INI_MENU_URL_, x, y);  GetSavedVar( applet_name, strCaption, strItem );  if (strlen (strItem) != 0)  {    sprintf (strLine, "<param name=\"MenuUrl%c%c\" value=\"%s\">\r\n", x, y, strItem);    applet_tag = mycat (applet_tag, strLine);  }  sprintf (strCaption, "%s%c%c",INI_MENU_TARGET_, x, y);  GetSavedVar( applet_name, strCaption, strItem );  if (strlen (strItem) != 0)  {    sprintf (strLine, "<param name=\"MenuTarget%c%c\" value=\"%s\">\r\n", x, y, strItem);    applet_tag = mycat (applet_tag, strLine);  }  sprintf (strCaption, "%s%c%c",INI_MENU_LINK_, x, y);  GetSavedVar( applet_name, strCaption, strItem );  if (strlen (strItem) != 0)  {    sprintf (strLine, "<param name=\"MenuLink%c%c\" value=\"%s\">\r\n", x, y, strItem);    applet_tag = mycat (applet_tag, strLine);    //se non e' un link all'indietro    if( strItem[0] != cParent )    {      applet_tag = TranslateMenuSettingInHTML(applet_name, applet_tag, strItem[0], '0', x);    }  }  applet_tag = TranslateMenuSettingInHTML(applet_name, applet_tag, x, GetMenuLinkNext(applet_name, y), cParent);  return applet_tag;}char* TranslateTreeMenuSettingInHTML(char* applet_name, char* applet_tag, guint32* pidMenu, guint32 idLevel, guint32 idParent){  char strCaption[256], strLine[256], strLevel[256], strText[256];  char strIconIndex[256], strLink[256], strUrl[256];  sprintf (strCaption, "%s%d",INI_MENU_LEVEL_, *pidMenu);  GetSavedVar(applet_name, strCaption, strLevel );  if (idLevel != (guint32)_ttoi(strLevel))  {    --(*pidMenu);    return applet_tag;  }

⌨️ 快捷键说明

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