|
|
| Line 1: |
Line 1: |
| − | * [[Go to Professional GEM page 01 to 06]]
| + | {{Professional GEM}} |
| − | PART - I. Windows .................................. 1
| |
| − | IN THE BEGINNING .................................. 1
| |
| − | windcreate()......................................... 1
| |
| − | windget()............................................ 1
| |
| − | OPEN SESAME! ..................................... 3
| |
| − | windopen()........................................... 3
| |
| − | windget()............................................ 3
| |
| − | windcalc()........................................... 3
| |
| − | windset()............................................ 3
| |
| − | CLEANING UP ...................................... 4
| |
| − | windclose().......................................... 4
| |
| − | winddelete()......................................... 4
| |
| − | THOSE FAT SLIDERS ................................. 4
| |
| − | windset()............................................ 5
| |
| − | windset()............................................ 5
| |
| − | windget()............................................ 5
| |
| − | COMING UP NEXT .................................... 6
| |
| − | FEEDBACK ........................................ 6
| |
| | | | |
| − | * [[Go to Professional GEM page 07 to 15]]
| + | '''Professional GEM''' was a series of articles by [[Tim Oren]]. The articles {{--}} published by the [[ANTIC online]] magazine in 1985/86 {{--}} provide a good introduction in [[GEM]] programming. |
| − | PART - II. Windows ................................. 7
| |
| − | EXCELSIOR ....................................... 7
| |
| − | REDRAWING WINDOWS ................................ 7
| |
| − | CAVEAT EMPTOR .................................... 7
| |
| − | INTO THE BITS ..................................... 8
| |
| − | A SMALL CONFESSION ................................ 9
| |
| − | WINDOW CONTROL REQUESTS ........................... 10
| |
| − | windset()............................................ 10
| |
| − | rcconstrain()........................................ 10
| |
| − | align().............................................. 10
| |
| − | windset()............................................ 12
| |
| − | WINDOW SLIDER MESSAGES ............................ 12
| |
| − | windset.............................................. 12
| |
| − | A COMMON BUG ...................................... 13
| |
| − | DEPT. OF DIRTY TRICKS .............................. 14
| |
| − | windget()............................................ 14
| |
| − | windset()............................................ 14
| |
| − | A SIN OF OMISSION .................................. 15
| |
| − | COMING SOON ...................................... 15
| |
| | | | |
| − | * [[Go to Professional GEM page 16 to 23]]
| + | [[Category:Programming]] |
| − | PART - III. THE DIALOG HANDLER ....................... 16
| + | [[Category:GEM]] |
| − | A MEANINGFUL DIALOG ............................... 16
| |
| − | DEFINING TERMS ................................... 16
| |
| − | rsrcload()........................................... 17
| |
| − | rsrcgaddr().......................................... 17
| |
| − | BUG ALERT! ....................................... 17
| |
| − | A HANDY TRICK ..................................... 19
| |
| − | CLEAN UP ......................................... 20
| |
| − | deselobj()........................................... 20
| |
| − | RECAP ........................................... 20
| |
| − | BUTTON BUTTON .................................... 20
| |
| − | selobj()............................................. 21
| |
| − | WHO'S GOT THE BUTTON? .............................. 21
| |
| − | selobj()............................................. 22
| |
| − | COMING UP NEXT .................................... 22
| |
| − | DISPELL GREMLINS ................................. 23
| |
| − | | |
| − | * [[Go to Professional GEM page 24 to 30]]
| |
| − | PART - IV. Resource Structure ....................... 24
| |
| − | A MAZE OF TWISTY LITTLE PASSAGES. .................... 24
| |
| − | PUTTING IT TO WORK ................................. 28
| |
| − | LETTERS WE GET LETTERS ............................. 30
| |
| − | STRAW POLL! ...................................... 30
| |
| − | STAY TUNED! ...................................... 30
| |
| − | | |
| − | * [[Go to Professional GEM page 32 to 37]]
| |
| − | PART - V. Resource Tree Structures ................... 32
| |
| − | HOW GEM DOES IT. ................................... 34
| |
| − | THOUGHT EXPERIMENTS .............................. 36
| |
| − | A TREEWALKER OF OUR OWN ............................. 37
| |
| − | | |
| − | * [[Go to Professional GEM page 39 to 48]]
| |
| − | PART - VI. Raster operations ........................ 39
| |
| − | SEASONS GREETINGS ................................ 39
| |
| − | DEFINING TERMS ................................... 39
| |
| − | MONOCHROME VS. COLOR .............................. 39
| |
| − | STANDARD VS. DEVICE-SPECIFIC FORMAT ................ 40
| |
| − | EVEN-WORD VS. FRINGES ............................. 41
| |
| − | MFDB's .......................................... 41
| |
| − | LET'S OPERATE .................................... 42
| |
| − | TRANSFORM FORM ................................... 42
| |
| − | vrtrnfm()............................................ 42
| |
| − | COPY RASTER OPAQUE ................................ 43
| |
| − | vrocpyfm()........................................... 43
| |
| − | COPY RASTER TRANSPARENT ........................... 44
| |
| − | vrtcpyfm()........................................... 44
| |
| − | THE MODE PARAMETER ................................ 44
| |
| − | REPLACE MODE ..................................... 45
| |
| − | ERASE MODE ....................................... 45
| |
| − | XOR MODE ......................................... 45
| |
| − | TRANSPARENT MODE ................................. 45
| |
| − | REVERSE TRANSPARENT MODE .......................... 45
| |
| − | THE PROBLEM OF COLOR ............................... 45
| |
| − | OPTIMIZING RASTER OPERATIONS ...................... 46
| |
| − | AVOID MERGED COPIES ............................... 46
| |
| − | MOVE TO CORRESPONDING PIXELS ....................... 46
| |
| − | AVOID FRINGES .................................... 47
| |
| − | USE ANOTHER METHOD ................................ 47
| |
| − | FEEDBACK RESULTS ................................. 47
| |
| − | THE NEXT QUESTION ................................. 47
| |
| − | COMING UP SOON .................................... 48
| |
| − | | |
| − | * [[Go to Professional GEM page 49 to 56]]
| |
| − | PART - VII. Menu Structures ......................... 49
| |
| − | HAPPY NEW YEAR .................................... 49
| |
| − | MENU BASICS ...................................... 49
| |
| − | MENU STRUCTURES .................................. 49
| |
| − | USING THE MENU .................................... 51
| |
| − | rsrcgaddr().......................................... 51
| |
| − | menubar()............................................ 51
| |
| − | menutnormal()........................................ 52
| |
| − | GETTING FANCY .................................... 52
| |
| − | menuienable()........................................ 52
| |
| − | setmenu()............................................ 53
| |
| − | CHECK PLEASE? .................................... 53
| |
| − | menuicheck()......................................... 53
| |
| − | NOW YOU SEE IT NOW YOU DON'T .......................... 53
| |
| − | menutext()........................................... 54
| |
| − | LUNCH AND DINNER MENUS ............................. 54
| |
| − | DO IT YOURSELF .................................... 54
| |
| − | MAKE PRETTY ...................................... 55
| |
| − | THAT'S IT FOR NOW! ................................. 56
| |
| − | | |
| − | * [[Go to Professional GEM page 57 to 66]]
| |
| − | PART - VIII. USER INTERFACES ........................ 57
| |
| − | AND NOW FOR SOMETHING COMPLETELY DIFFERENT! .......... 57
| |
| − | CREDIT WHERE IT'S DUE .............................. 57
| |
| − | FINGERTIPS ...................................... 57
| |
| − | MUSCLES ......................................... 58
| |
| − | EYES ............................................ 59
| |
| − | SHORT-TERM MEMORY ................................ 60
| |
| − | CHUNKING ........................................ 60
| |
| − | THINK! .......................................... 61
| |
| − | ARE WE NOT MEN? .................................... 61
| |
| − | OF MODES AND BANDWIDTH ............................. 65
| |
| − | TO DO IS TO BE! ..................................... 66
| |
| − | AMEN... ......................................... 66
| |
| − | | |
| − | * [[Go to Professional GEM page 68 to 76]]
| |
| − | PART - IX. VDI Graphics: Lines and Solids .............. 68
| |
| − | A BIT OF HISTORY ................................... 68
| |
| − | vswrmode()........................................... 69
| |
| − | vsclip()............................................. 69
| |
| − | THE LINE FORMS ON THE LEFT ........................... 70
| |
| − | vslcolor()........................................... 70
| |
| − | vslwidth()........................................... 70
| |
| − | vslends()............................................ 70
| |
| − | vsltype()............................................ 70
| |
| − | vsludsty()........................................... 71
| |
| − | vpline()............................................. 71
| |
| − | vrbox().............................................. 72
| |
| − | varc()............................................... 72
| |
| − | vellarc()............................................ 73
| |
| − | SOLIDS .......................................... 73
| |
| − | vsfcolor()........................................... 74
| |
| − | vsfperimeter()....................................... 74
| |
| − | vsfinterior()........................................ 74
| |
| − | vsfstyle()........................................... 74
| |
| − | vsfudpat()........................................... 75
| |
| − | vfillarea().......................................... 75
| |
| − | vrrecfl()............................................ 75
| |
| − | vcircle()............................................ 76
| |
| − | vellipse()........................................... 76
| |
| − | vpieslice().......................................... 76
| |
| − | vellpie()............................................ 76
| |
| − | vrfbox()............................................. 76
| |
| − | TO BE CONTINUED ................................... 76
| |
| − | | |
| − | * [[Go to Professional GEM page 77 to 114]]
| |
| − | APPENDICES................................................. 77
| |
| − | Appendix - I Sample Code for Part II.................... 78
| |
| − | Appendix - II Sample Code for Part III.................. 83
| |
| − | Appendix - III Sample Code for Part IV.................. 88
| |
| − | Appendix - IV Sample Code for Part V.................... 98
| |
| − | Appendix - V Sample Code for Part VI.................... 103
| |
| − | Appendix - VI Sample Code for Part VII.................. 108
| |
| − | Appendix - VII Sample Code for Part IX.................. 112
| |
| − | Appendix - VIII Sample Code for Part X.................. 114
| |