pjs/cck/driver/WizardMachine.h

197 строки
4.4 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
// WizardMachine.h : main header file for the WIZARDMACHINE application
//
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
#include "WizardMachineDlg.h"
#define MIN_SIZE 100
#define MID_SIZE 500
#define MAX_SIZE 1000
// Some global structures
typedef struct NVPAIR
{
char name[MID_SIZE];
char value[MID_SIZE];
char options[MAX_SIZE];
char type[MID_SIZE];
}NVPAIR;
typedef struct ACTIONSET
{
CString event;
CString dll;
CString function;
char parameters[MAX_SIZE];
}ACTIONSET;
typedef struct DIMENSION
{
int width;
int height;
}DIMENSION;
typedef struct OPTIONS
{
char* name[25];
char* value[25];
}OPTIONS;
typedef struct WIDGET
{
CString type;
CString name;
CString value;
CString title;
CString group;
CString target;
CString description;
POINT location;
DIMENSION size;
ACTIONSET action;
int numOfOptions;
OPTIONS options;
CString items;
BOOL cached;
int widgetID;
CWnd *control;
}WIDGET;
typedef struct IMAGE
{
CString name;
CString value;
POINT location;
DIMENSION size;
HBITMAP hBitmap;
}IMAGE;
typedef struct VARS
{
CString title;
CString caption;
CString pageName;
CString image;
CString visibility;
CString functionality;
}VARS;
typedef struct PAGE
{
CStringArray pages;
CStringArray visibility;
}PAGE;
typedef struct CONTROLS
{
CString onNextAction;
CString helpFile;
}CONTROLS;
typedef struct WIDGETGROUPS
{
CString groupName;
CString widgets;
}WIDGETGROUPS;
typedef struct NODE
{
NODE *parent;
NODE **childNodes;
int numChildNodes;
int currNodeIndex;
VARS *localVars;
PAGE *subPages;
CONTROLS *navControls;
WIDGET** pageWidgets;
int numWidgets;
int currWidgetIndex;
int pageBaseIndex;
IMAGE **images;
int numImages;
BOOL nodeBuilt;
BOOL isWidgetsSorted;
}NODE;
//NODE WizardTree;
/////////////////////////////////////////////////////////////////////////////
// CWizardMachineApp:
// See WizardMachine.cpp for the implementation of this class
//
class CWizardMachineApp : public CWinApp
{
public:
CWizardMachineApp();
void InitializeTree(CString rootIniFile);
NODE* CreateNode(NODE *parentNode, CString iniFileName);
void CreateNode();
void SetGlobalDefaults();
void CreateFirstLeaf(NODE *parent, CString iniFile);
BOOL SectionFound(CString iniFile, CString section);
int GetBufferCount(char *buffer);
char* GetBufferElement(const char *buffer, int index);
char* GetSectionBuffer(CString iniFile, CString section);
void ExecuteAction(char action);
void GoToNextNode();
void GoToPrevNode();
void ExitApp();
BOOL CheckForPreBuiltPath();
FILE* OpenAFile(CString outputFile, CString mode);
void PrintNodeInfo(NODE* node);
void CheckIniFileExistence(CString file);
BOOL FileExists(CString file);
void FillGlobalWidgetArray();
void CreateNewCache();
BOOL IsLastNode(NODE* treeNode);
BOOL IsFirstNode(NODE* treeNode);
CString GetModulePath();
CString GetGlobal(CString theName);
BOOL SetGlobal(CString theName, CString theValue);
CString GetGlobalOptions(CString theName);
WIDGET* findWidget(char *name);
void BuildWidget(WIDGET* aWidget, CString iniSection, CString iniFile, int pageBaseIndex, BOOL readValue);
void GenerateList(CString action, WIDGET* targetWidget, CString ext);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CWizardMachineApp)
public:
virtual BOOL InitInstance();
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CWizardMachineApp)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////