File: dtapp.c

package info (click to toggle)
ncbi-tools6 6.1.20041020-3
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 65,588 kB
  • ctags: 74,723
  • sloc: ansic: 1,020,512; xml: 3,390; sh: 2,668; csh: 587; makefile: 546; perl: 292; lisp: 81; cpp: 59
file content (111 lines) | stat: -rw-r--r-- 4,149 bytes parent folder | download | duplicates (15)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/*   dtapp.c
* ===========================================================================
*
*                            PUBLIC DOMAIN NOTICE
*            National Center for Biotechnology Information (NCBI)
*
*  This software/database is a "United States Government Work" under the
*  terms of the United States Copyright Act.  It was written as part of
*  the author's official duties as a United States Government employee and
*  thus cannot be copyrighted.  This software/database is freely available
*  to the public for use. The National Library of Medicine and the U.S.
*  Government do not place any restriction on its use or reproduction.
*  We would, however, appreciate having the NCBI and the author cited in
*  any work or product based on this material
*
*  Although all reasonable efforts have been taken to ensure the accuracy
*  and reliability of the software and data, the NLM and the U.S.
*  Government do not and cannot warrant the performance or results that
*  may be obtained by using this software or data. The NLM and the U.S.
*  Government disclaim all warranties, express or implied, including
*  warranties of performance, merchantability or fitness for any particular
*  purpose.
*
* ===========================================================================
*
* File Name:  dtapp.c
*
* Author:  Jim Ostell
*
* Version Creation Date:   11-29-94
*
* $Revision: 6.0 $
*
* File Description: Demo application in which the desktop is the main application
*
* Modifications:  
* --------------------------------------------------------------------------
* Date     Name        Description of modification
* -------  ----------  -----------------------------------------------------
*
*
* ==========================================================================
*/

#include <vsm.h>

/*** Main Program.. just initializes funcs, puts up a window ***/
    /** these are prototypes for two fake functions to register **/
static Int2 LIBCALLBACK FakeFunc1 PROTO((Pointer data));
static Int2 LIBCALLBACK FakeFunc2 PROTO((Pointer data));

    /** here is your main program **/
    
Int2 Main (void)
{
	Uint2 procid1, procid2;
	
	        /* register the functions. One takes any input type, One takes only a Seq-feat
	           they are both pretending to be viewers (in View in desktop), but will really
	           only put up a Message box */
	           
	procid1 = ObjMgrProcLoad(OMPROC_VIEW, "Fake viewer. Takes any type.", "FakeView1",
					0,0,0,0,NULL,FakeFunc1,PROC_PRIORITY_DEFAULT);
					
	procid2 = ObjMgrProcLoad(OMPROC_VIEW, "Fake viewer. Takes only Seq-feat.", "FakeView2",
					OBJ_SEQFEAT,0,0,0,NULL,FakeFunc2,PROC_PRIORITY_DEFAULT);
					
	VSeqMgrRun("Jim's DeskTop Demo", "Demonstration desktop application.~Just shows a few messages.~Jim Ostell~NCBI");

	return 0;
}

/*** these are the procedures called by the desktop. data will ALWAYS be a OMProcControlPtr.
*     the Pointer is because of order of typedefs in the header. It will be filled in with
*     the input entityID, data, etc. You are expected to fill in the output if necessary,
*     to send any update messages to the ObjMgr, and so on before returning
****/

static Int2 LIBCALLBACK FakeFunc1 (Pointer data)
{
	OMProcControlPtr ompcp;
	ObjMgrProcPtr ompp;
	Pointer my_userdata;
	
	ompcp = (OMProcControlPtr)data;
	ompp = ompcp->proc;      /* this is your proceedure */
	my_userdata = ompp->procdata;   /* this is the user data pointer you passed in, if any */
	
	Message(MSG_OK, "Called FakeFunc1: input_entityID=%d input_itemtype=%d input_data=%ld",
		(int)(ompcp->input_entityID), (int)(ompcp->input_itemtype),
		(long)(ompcp->input_data));
		
	return OM_MSG_RET_OK;
}


static Int2 LIBCALLBACK FakeFunc2 (Pointer data)
{
	OMProcControlPtr ompcp;
	ObjMgrProcPtr ompp;
	Pointer my_userdata;
	
	ompcp = (OMProcControlPtr)data;
	ompp = ompcp->proc;      /* this is your proceedure */
	my_userdata = ompp->procdata;   /* this is the user data pointer you passed in, if any */
	
	Message(MSG_OK, "Called FakeFunc2: input_entityID=%d input_itemtype=%d",
		(int)(ompcp->input_entityID), (int)(ompcp->input_itemtype));
		
	return OM_MSG_RET_OK;
}