ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/crossedit/Cnv/Cnv.h
Revision: 1.3
Committed: Sun Aug 13 17:16:01 2006 UTC (17 years, 9 months ago) by elmex
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +0 -0 lines
State: FILE REMOVED
Log Message:
Made server compile with C++.
Removed cfanim plugin and crossedit.
C++ here we come.

File Contents

# Content
1 /*
2 * Cnv.h - generic GUI utilities
3 * Copyright (C) 1993 Petri Heinila
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 *
19 * Author can be connected by email from hevi@lut.fi
20 */
21
22 #ifndef _Cnv_h
23 #define _Cnv_h
24
25 #include <Posix.h>
26 #include <Xaw.h>
27 #include <Ansi.h>
28 #include <config.h>
29 #include <includes.h>
30
31 /*
32 * generic macros
33 */
34 #define pathcpy(dst,src) {strncpy(dst,src,PATH_MAX);dst[PATH_MAX]='\0';}
35 #define namecpy(dst,src) {strncpy(dst,src,NAME_MAX);dst[NAME_MAX]='\0';}
36
37 /*
38 * menu
39 */
40 typedef struct CnvMenuRec {
41 const char *label;
42 void (*func) (Widget, XtPointer, XtPointer);
43 } CnvMenuRec;
44 extern Widget CnvMenu(String, Widget,CnvMenuRec[], XtPointer);
45
46 /**********************************************************************
47 * CnvPath
48 **********************************************************************/
49
50 #define EntryMax (_POSIX_ARG_MAX / 2)
51
52 typedef enum {
53 CnvPathHold,
54 CnvPathOk,
55 CnvPathCancel
56 } CnvPathResponce;
57
58 /*
59 *
60 */
61 typedef struct CnvPath {
62 Widget shell; /* shell widget */
63 Widget dirList; /* list widget for directories */
64 Widget fileList; /* list widget for files */
65 Widget cwd; /* label widget for current working dir */
66 Widget text; /* text field */
67 CnvPathResponce hold; /* for internal use */
68 String dirTable[EntryMax]; /* table of dirnames, alloc dyn */
69 String fileTable[EntryMax]; /* table of filename, alloc dyn */
70 Cardinal fileNro; /* number of files in current directory */
71 Cardinal dirNro; /* number of directories in current dir */
72 /* char dirname[PATH_MAX+1]; name of current directory, abs. */
73 char current[PATH_MAX+1]; /* LibDir/MapDir<current> */
74 char filename[NAME_MAX+1]; /* last selected file, rel to dir */
75 char root[PATH_MAX+1]; /* directory names are prefixed by this */
76 } *CnvPath;
77
78 extern CnvPath CnvPathCreate (String name,String root, String dir);
79 extern void CnvPathDestroy ( CnvPath self );
80 extern Boolean CnvPathNoAccess ( Widget w, String path );
81 extern Boolean CnvPathNoWrite ( Widget w, String path );
82 extern CnvPathResponce CnvPathSelect ( CnvPath self );
83
84
85 /**********************************************************************
86 * CnvFiles
87 **********************************************************************/
88
89 typedef void (*CnvFilesProc)(XtPointer client,String path);
90
91 typedef struct CnvFiles {
92 /* private */
93 Widget shell; /* shellwidget containing menu */
94 String name; /* menu name, to be not ambiguous */
95 char directory[PATH_MAX+1]; /* directory to get menu */
96 CnvFilesProc proc; /* function when menu item selected */
97 XtPointer client; /* package pointer */
98 /* public */
99 } *CnvFiles;
100
101 extern CnvFiles CnvFilesCreate(String,Widget,CnvFilesProc,XtPointer,String);
102 extern void CnvFilesDestroy ( CnvFiles );
103 extern Widget CnvFilesRescan ( CnvFiles, String,Widget,String directory );
104
105 /**********************************************************************
106 * CnvBrowse
107 **********************************************************************/
108 typedef struct CnvBrowse *CnvBrowse;
109 /*
110 * call this function when finished editing
111 */
112 typedef void (*CnvBrowseEditProc)(CnvBrowse self,XtPointer client,String str);
113
114 /*
115 * object for showing text
116 */
117 struct CnvBrowse {
118 Widget shell;
119 Widget text;
120 Widget file;
121 Widget ok;
122 Boolean isup;
123 CnvBrowseEditProc proc;
124 };
125
126 typedef enum CnvBrowseReturn {
127 CnvBrowseOk,
128 CnvBrowseError
129 } CnvBrowseReturn;
130
131 /*
132 * inteface
133 */
134 extern CnvBrowse CnvBrowseCreate ( String name, Widget parent,
135 CnvBrowseEditProc proc);
136 extern void CnvBrowseDestroy ( CnvBrowse self );
137 extern void CnvBrowseShowFile ( CnvBrowse self, String file );
138 extern void CnvBrowseShowString ( CnvBrowse self, String str );
139 extern void CnvBrowseEditString ( CnvBrowse self, String str );
140
141 /**********************************************************************
142 * Cnv
143 **********************************************************************/
144 typedef struct Cnv {
145 Widget shell; /* application level shell widget */
146 struct {
147 Pixmap excloff;
148 Pixmap exclon;
149 Pixmap flagoff;
150 Pixmap flagon;
151 Pixmap notify; /* face for CnvNotify */
152 Pixmap prompt; /* face for CnvPrompt */
153 Pixmap submenu;
154 } xbm;
155 } *Cnv;
156 extern Cnv cnv; /* this is global for all */
157
158 /*
159 * utility functions
160 */
161 extern void CnvCenterWidget ( Widget w );
162 extern void CnvDie ( Widget self, String msg );
163 extern Widget CnvGetShell ( Widget child );
164 extern int CnvNotify (String msg, ... );
165 extern int CnvPrompt ( String msg, String sgg, String ans, ...);
166 extern void CnvWarn ( Widget self, String msg );
167 extern void CnvInitialize(Widget shell);
168 extern CnvPathResponce CnvPathSelectAbs(CnvPath self,String path);
169
170
171 #endif /* _Cnv_h */