Fandom

Wikihack

Source:Windows.c

2,034pages on
this wiki
Add New Page
Talk0

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Below is the full text to src/windows.c from NetHack 3.4.3. To link to a particular line, write [[windows.c#line123]], for example.

Top of file Edit

1.    /*	SCCS Id: @(#)windows.c	3.4	1996/05/19	*/
2.    /* Copyright (c) D. Cohrs, 1993. */
3.    /* NetHack may be freely redistributed.  See license for details. */
4.    
The NetHack General Public License applies to screenshots, source code and other content from NetHack.
5.    #include "hack.h"
6.    #ifdef TTY_GRAPHICS
7.    #include "wintty.h"
8.    #endif
9.    #ifdef X11_GRAPHICS
10.   /* cannot just blindly include winX.h without including all of X11 stuff */
11.   /* and must get the order of include files right.  Don't bother */
12.   extern struct window_procs X11_procs;
13.   extern void NDECL(win_X11_init);
14.   #endif
15.   #ifdef QT_GRAPHICS
16.   extern struct window_procs Qt_procs;
17.   #endif
18.   #ifdef GEM_GRAPHICS
19.   #include "wingem.h"
20.   #endif
21.   #ifdef MAC
22.   extern struct window_procs mac_procs;
23.   #endif
24.   #ifdef BEOS_GRAPHICS
25.   extern struct window_procs beos_procs;
26.   extern void NDECL(be_win_init);
27.   #endif
28.   #ifdef AMIGA_INTUITION
29.   extern struct window_procs amii_procs;
30.   extern struct window_procs amiv_procs;
31.   extern void NDECL(ami_wininit_data);
32.   #endif
33.   #ifdef WIN32_GRAPHICS
34.   extern struct window_procs win32_procs;
35.   #endif
36.   #ifdef GNOME_GRAPHICS
37.   #include "winGnome.h"
38.   extern struct window_procs Gnome_procs;
39.   #endif
40.   #ifdef MSWIN_GRAPHICS
41.   extern struct window_procs mswin_procs;
42.   #endif
43.   
44.   STATIC_DCL void FDECL(def_raw_print, (const char *s));
45.   
46.   NEARDATA struct window_procs windowprocs;
47.   
48.   static
49.   struct win_choices {
50.       struct window_procs *procs;
51.       void NDECL((*ini_routine));		/* optional (can be 0) */
52.   } winchoices[] = {
53.   #ifdef TTY_GRAPHICS
54.       { &tty_procs, win_tty_init },
55.   #endif
56.   #ifdef X11_GRAPHICS
57.       { &X11_procs, win_X11_init },
58.   #endif
59.   #ifdef QT_GRAPHICS
60.       { &Qt_procs, 0 },
61.   #endif
62.   #ifdef GEM_GRAPHICS
63.       { &Gem_procs, win_Gem_init },
64.   #endif
65.   #ifdef MAC
66.       { &mac_procs, 0 },
67.   #endif
68.   #ifdef BEOS_GRAPHICS
69.       { &beos_procs, be_win_init },
70.   #endif
71.   #ifdef AMIGA_INTUITION
72.       { &amii_procs, ami_wininit_data },		/* Old font version of the game */
73.       { &amiv_procs, ami_wininit_data },		/* Tile version of the game */
74.   #endif
75.   #ifdef WIN32_GRAPHICS
76.       { &win32_procs, 0 },
77.   #endif
78.   #ifdef GNOME_GRAPHICS
79.       { &Gnome_procs, 0 },
80.   #endif
81.   #ifdef MSWIN_GRAPHICS
82.       { &mswin_procs, 0 },
83.   #endif
84.       { 0, 0 }		/* must be last */
85.   };
86.   

def_raw_print Edit

87.   STATIC_OVL
88.   void
89.   def_raw_print(s)
90.   const char *s;
91.   {
92.       puts(s);
93.   }
94.   

choose_windows Edit

95.   void
96.   choose_windows(s)
97.   const char *s;
98.   {
99.       register int i;
100.  
101.      for(i=0; winchoices[i].procs; i++)
102.  	if (!strcmpi(s, winchoices[i].procs->name)) {
103.  	    windowprocs = *winchoices[i].procs;
104.  	    if (winchoices[i].ini_routine) (*winchoices[i].ini_routine)();
105.  	    return;
106.  	}
107.  
108.      if (!windowprocs.win_raw_print)
109.  	windowprocs.win_raw_print = def_raw_print;
110.  
111.      raw_printf("Window type %s not recognized.  Choices are:", s);
112.      for(i=0; winchoices[i].procs; i++)
113.  	raw_printf("        %s", winchoices[i].procs->name);
114.  
115.      if (windowprocs.win_raw_print == def_raw_print)
116.  	terminate(EXIT_SUCCESS);
117.      wait_synch();
118.  }
119.  

genl_message_menu Edit

120.  /*
121.   * tty_message_menu() provides a means to get feedback from the
122.   * --More-- prompt; other interfaces generally don't need that.
123.   */
124.  /*ARGSUSED*/
125.  char
126.  genl_message_menu(let, how, mesg)
127.  char let;
128.  int how;
129.  const char *mesg;
130.  {
131.      pline("%s", mesg);
132.      return 0;
133.  }
134.  

genl_preference_update Edit

135.  /*ARGSUSED*/
136.  void
137.  genl_preference_update(pref)
138.  const char *pref;
139.  {
140.  	/* window ports are expected to provide
141.  	   their own preference update routine
142.  	   for the preference capabilities that
143.  	   they support.
144.  	   Just return in this genl one. */
145.  }
146.  /*windows.c*/

Also on Fandom

Random Wiki