More event processing and tweaks to controls.

This commit is contained in:
Stephen Heumann 2019-04-11 14:40:12 -05:00
parent f862c2bef8
commit 44d02d36e1
2 changed files with 62 additions and 9 deletions

View File

@ -9,6 +9,7 @@
#include <memory.h> #include <memory.h>
#include <control.h> #include <control.h>
#include <lineedit.h> #include <lineedit.h>
#include <list.h>
#include <desk.h> #include <desk.h>
#include <gsos.h> #include <gsos.h>
#include <orca.h> #include <orca.h>
@ -46,6 +47,18 @@ GrafPortPtr window;
Boolean resourceFileOpened, windowOpened; Boolean resourceFileOpened, windowOpened;
/* User preference */
boolean gsDisksOnly = true;
#define DISK_LIST_LENGTH 10
struct diskListEntry {
char *memPtr;
Byte memFlag;
};
struct diskListEntry diskList[DISK_LIST_LENGTH];
/* Record about our system window, to support processing by Desk Manager. */ /* Record about our system window, to support processing by Desk Manager. */
/* See Prog. Ref. for System 6.0, page 20. */ /* See Prog. Ref. for System 6.0, page 20. */
static NDASysWindRecord sysWindRecord; static NDASysWindRecord sysWindRecord;
@ -93,6 +106,9 @@ void CloseBrowserWindow(void) {
CloseWindow(window); CloseWindow(window);
windowOpened = false; windowOpened = false;
window = NULL; window = NULL;
/* reset state */
gsDisksOnly = true;
} }
if (resourceFileOpened && !windowOpened) { if (resourceFileOpened && !windowOpened) {
@ -134,9 +150,46 @@ boolean DoLEEdit (int editAction) {
return ((id == searchLine) || (id == pageNumberLine)); return ((id == searchLine) || (id == pageNumberLine));
} }
/* Do a search */
void DoSearch(void) {
for (int i = 0; i < DISK_LIST_LENGTH; i++) {
diskList[i].memPtr = "This is the title of some disk you could mount";
diskList[i].memFlag = 0;
}
NewList2(NULL, 1, (Ref) diskList, refIsPointer,
DISK_LIST_LENGTH, (Handle) GetCtlHandleFromID(window, disksList));
}
/* Handle an event after TaskMasterDA processing */ /* Handle an event after TaskMasterDA processing */
void HandleEvent(int eventCode, WmTaskRec *taskRec) { void HandleEvent(int eventCode, WmTaskRec *taskRec) {
switch (eventCode) { switch (eventCode) {
case wInControl:
switch (taskRec->wmTaskData4) {
case searchButton:
DoSearch();
break;
case forIIGSRadio:
gsDisksOnly = true;
break;
case forAnyAppleIIRadio:
gsDisksOnly = false;
break;
case previousPageButton:
//TODO
break;
case nextPageButton:
//TODO
break;
case mountDiskButton:
// TODO
break;
}
break;
case keyDownEvt: case keyDownEvt:
case autoKeyEvt: case autoKeyEvt:
/* Handle keyboard shortcuts for cut/copy/paste */ /* Handle keyboard shortcuts for cut/copy/paste */

View File

@ -35,18 +35,18 @@ resource rWindParam1 (winDiskBrowser) {
}; };
resource rControlList (winDiskBrowser) {{ resource rControlList (winDiskBrowser) {{
searchLine, mountDiskButton,
searchButton,
findDisksForText,
forIIGSRadio,
forAnyAppleIIRadio,
disksList,
previousPageButton, previousPageButton,
pageText, pageText,
pageNumberLine, pageNumberLine,
ofPagesText, ofPagesText,
nextPageButton, nextPageButton,
mountDiskButton disksList,
findDisksForText,
forIIGSRadio,
forAnyAppleIIRadio,
searchLine,
searchButton
}}; }};
resource rControlTemplate (searchLine) { resource rControlTemplate (searchLine) {
@ -126,7 +126,7 @@ resource rControlTemplate (disksList) {
{45, 10, 147, 410}, /* control rect */ {45, 10, 147, 410}, /* control rect */
ListControl {{ ListControl {{
$0007, /* flags */ $0007, /* flags */
$1400, /* more flags */ $7400, /* more flags */
0, /* refcon */ 0, /* refcon */
0, /* list size */ 0, /* list size */
10, /* List View */ 10, /* List View */