OSDN Git Service

upgrade to 3.6.2
[jnethack/source.git] / win / curses / Todo.txt
1 Below are some things I would like to see
2
3 NETHACK INTERFACE
4 =================
5
6 (These are the functions in cursmain.c called by the core NetHack code)
7
8  * Implement curses_rip for optional fancier color tombstone, as well
9  as one that will display correctly on smaller terminals.
10  
11  * I am confused as to how mark_synch, wait_synch, and delay_output
12  should work.  Help, please?
13  
14  * Both PDCurses and Ncurses have mouse support, so the poskey function
15  could probably be implemented easily enough.
16  
17  * raw_print is supposed to be able to work before the windowing system
18  has been initialized, as well as after, so I am unsure if curses
19  functions should be used here.  Maybe check to see if initscr() has
20  been called, and use curses functions if so, and call initscr() from
21  there is not?  Right now it is just a call to puts() with no support
22  for bold text.
23
24
25 DISPLAY
26 =======
27
28  * Consolidate refreshes of the display for smoother output.
29
30  * Horizontal scrollbar to show position for displays < 80 columns.
31  
32  * Calls to getch() should probably be turned into wgetch() for the
33  appropriate window.  This causes quirty cursor behavior under
34  PDCurses, however.
35
36  * Animation effects do not display properly - this could probably be
37  fixed with a correct implementation of the delay_output function.
38
39  * Support option to set forground and background colors for individual
40  windows
41
42
43 MENUS
44 =====
45
46 (cursdial.c)
47
48  * Menus need to be able to accept a count as input, e.g. to specifiy
49  how many items to drop.
50  
51  * Currently the "preselected" flag for an individual menu item is
52  ignored.  This should eventually be implemented.
53  
54  * Menus probably should never overlap with the message window, since
55  the user sometmes needs to be able to see the messages while the menu
56  is active, e.g. when identifying multiple items one at a time.
57  
58  * Perhaps allow for keyboard navigation of individual items, e.g.
59  using the up and down arrows to move among the selectable items, and
60  selecting individual items with the spacebar.  Perhaps the tab key
61  could jump to the first selectable item after the next heading, and
62  shift-tab could jump to the first item of the previous heading.
63
64
65 MESSAGE WINDOW
66 ==============
67
68 (cursmesg.c)
69
70  * Hitting Esc at the more prompt (which is '>>' for the curses
71  interface) should suppress the display of any further messages for
72  that turn like the tty interface does.
73
74
75 MAP WINDOW
76 ==========
77
78 (curswins.c)
79
80  * The map window would probably benefit from a total redesign.  Right
81  now, it uses a pad instead of a regular curses window, which causes a
82  number of special cases in the code to account for it, and a seperate
83  window behind it just to draw the border.  It feels kludgy and
84  annoying!
85
86
87 STATUS WINDOW
88 =============
89
90 (cursstat.c)
91
92  * If the status window is on the right or left, then we have much more
93  room to work with for each item horizontally.  Expand out some of the
94  labels for clarity.  We can also list the current dungeon (e.g.
95  Gnomish Mines) and perhaps show thermometer bars for hit points and
96  magical power.
97  
98  * Conversely, if we have a narrower dislay, compress some of the
99  labels to save space, and do not display some items that never or
100  rarely change (e.g. name, level and title, and alignment).  Perhaps
101  display changes to these fields in the message window if they do
102  happen to change (e.g. converting to a new alignment).
103  
104  * Maybe add some configuration options for what colors are used and
105  the like.
106
107 OTHER DIALOGS
108 =============
109
110 (cursdial.c)
111
112  * curses_yn_function needs to accept a count if a '#' is present in
113  choices string.
114  
115  * Extended commands should be enterable letter-by-letter via a '#'
116  prompt if user does not have the extmenu command set to TRUE.
117  
118  * Character selection should allow for a random selection of any or
119  all choices.
120
121
122 OTHER PLATFORMS
123 ===============
124
125  * PDCurses also work on DOS and OS/2.  PDCurses for SDL and ncurses
126  exist for Mac OS X.  Porting the curses interface to these platforms
127  should not be too difficult.
128
129
130 MISC
131 ====
132
133  * Update documentation and in-game help to describe the newly-added
134  options: cursesgraphics, term_rows, term_cols, and windowborders.
135
136  * Recognize "Alt" key in a platform-independant way to allow its use
137  to select extended commands.  Currently this works for PDCurses.  For
138  Ncurses, the Alt key works in an xterm or rxvt if the -meta8 flag is
139  passed, but I'd like to see a general way of detecting it.
140  
141  * PDCurses has a function named "addrawch" to output the visual
142  representation of a control character to the screen without having the
143  control character affect the display otherwise.  I would like to find
144  a way to accomplish the same thing via Ncurses to e.g. be able to use
145  a font like nh10 with the correct symbol mappings in an xterm or the
146  like.