1

Salut !
Je serai intersser par un code C qui permet d'exploiter les boites de Dialog du TI basic en C.
Je me dit que ca a du etre fait au moins une bonne centaine de fois, alors si quelqu'un veux me
faire profiter de son travail ca serait super.
Je suis aussi bien interesse par un Code qui creer des boites de dialog perso.

C'est vrai que j'ai la flemme de me taper le codage de ce truc.

2

Je pense que

[google]dialogs site:tigcc.ticalc.org[/google] devrait répondre a ta question..
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

3

ok, merci.

Faut tout se taper soit meme le code pour appeller meme si on veut faire des Dialog exactement comme en ti-basic.

A priori ca ne semble pas aussi difficile que je pensais, sinon il y aurait deja eu une lib pour faire ca.

4

C'est pas bien plus complexe qu'en TI-Basic, au différence de langage pret...
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

5

Boîtes de dialogue dynamiques ou statiques ? Des dialogs et menus statiques, j'en ai déjà fait.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

6

Des statiques, c'est pour faire les menus et autres.
Tu utilises du code perso ou les routines du TIOS ? Dans les 2 cas je suis interesse.


7

// RFS: don't forget to change values in the menu definition in case those are modified.
#define MENU_ADD_CMD 1
#define MENU_DEL_CMD 2
#define MENU_MODIFY_CMD 3
#define MENU_SEARCH_CMD 4
#define MENU_NEXT_CMD 5
#define MENU_OTHER_CMDS 6
#define MENU_DISPMODE_CMDS 7
#define MENU_REOPEN_DICT_CMD 8
#define MENU_TOTAL_NR_ENTRIES_CMD 9
#define MENU_NR_ENTRIES_IN_PART_CMD 10
#define MENU_FIRST_ENTRY_IN_PART_CMD 11
//#define MENU_CLOSE_DICT_CMD 12
#define MENU_DISPMODE_ORIG_WORD_CMD 12
#define MENU_DISPMODE_TRANS_WORD_CMD 13
#define MENU_DISPMODE_ORIG_CONTEXT_CMD 14
#define MENU_DISPMODE_TRANS_CONTEXT_CMD 15

extern const void menu;


///////////////////////////////////////////////////////////////////////////////
// The menu at the top of the screen.
asm ("
.globl menu
menu:
.word add_text-menu
.word 0x0004 | Flags (?).
.word 16 | Total number of entries.
.byte "C89_92S("160","240")", 18 | Width, height.
.word 6 | Number of main items.
.word 0 | Dynamic size.
.word 0 | Offset to redefinable icons, 0 if their number is 0.
.word 0 | Number of redefinable icons
.long -1
main_entries:
.word MT_TEXT + 1
.word add_text - title_text
.word MT_TEXT + 2
.word del_text - title_text
.word MT_TEXT + 3
.word modify_text - title_text
.word MT_TEXT + 4
.word search_text - title_text
.word MT_TEXT + 5
.word next_text - title_text
.word MT_TEXT + MT_CASCADE + 6
.word others_text - title_text
.word others_cascade - menu
.long -1
others_cascade:
.word MT_TEXT + MT_CASCADE + 7
.word dispmode_text - title_text
.word dispmode_cascade - menu
.word MT_TEXT + 8
.word reopen_dict_text - title_text
.word MT_TEXT + 9
.word total_nr_entries_text - title_text
.word MT_TEXT + 10
.word nr_entries_in_part_text - title_text
.word MT_TEXT + 11
.word first_entry_in_part_text - title_text
| .word MT_TEXT + 12
| .word close_dict_text - title_text
.long -1
dispmode_cascade:
.word MT_TEXT + 12
.word disp_orig_word_text - title_text
.word MT_TEXT + 13
.word disp_trans_word_text - title_text
.word MT_TEXT + 14
.word disp_orig_ctxt_text - title_text
.word MT_TEXT + 15
.word disp_trans_ctxt_text - title_text
.long -1
title_text:
| .asciz \"Title\"
add_text:
.asciz \""MENU_ADD_STR"\"
del_text:
.asciz \""MENU_DEL_STR"\"
modify_text:
.asciz \""MENU_MODIFY_STR"\"
search_text:
.asciz \""MENU_SEARCH_STR"\"
next_text:
.asciz \""MENU_NEXT_STR"\"
others_text:
.asciz \""MENU_OTHERS_STR"\"
dispmode_text:
.asciz \""MENU_DISP_MODE_STR"\"
reopen_dict_text:
.asciz \""MENU_REOPEN_DICT_STR"\"
total_nr_entries_text:
.asciz \""MENU_TOTAL_NR_ENTRIES_STR"\"
nr_entries_in_part_text:
.asciz \""MENU_NR_ENTRIES_IN_PART_STR"\"
first_entry_in_part_text:
.asciz \""MENU_FIRST_ENTRY_IN_PART_STR"\"
| close_dict_text:
| .asciz \""MENU_CLOSE_DICT_STR"\"
disp_orig_word_text:
.asciz \""ORIG_WORD_SHORT_STR"\"
disp_trans_word_text:
.asciz \""TRANS_WORD_SHORT_STR"\"
disp_orig_ctxt_text:
.asciz \""ORIG_CONTEXT_SHORT_STR"\"
disp_trans_ctxt_text:
.asciz \""TRANS_CONTEXT_SHORT_STR"\"
| end_menu:
.even
");


///////////////////////////////////////////////////////////////////////////////
// "Entry" (add/delete/modify) dialog definition.
// Taken from the TIGCC examples made by "Wazabbe" and improved by "C Bien".
#define entryDialogNrItems 5
#define entryDialogStrings ENTRY_DIALOG_TITLE_STR \
"\0" ORIG_WORD_SHORT_STR \
"\0" TRANS_WORD_SHORT_STR \
"\0" ORIG_CONTEXT_SHORT_STR \
"\0" TRANS_CONTEXT_SHORT_STR \
"\0"
__attribute__((__may_alias__)) SIZED_DIALOG(entryDialogNrItems,offsetof(SIZED_DIALOG(entryDialogNrItems,0),String)) entryDialog =
{
offsetof(SIZED_DIALOG(entryDialogNrItems,0),String), entryDialogNrItems,C89_92S(160,240),C89_92S(75,85),NoCallBack,
{
{//Title
D_HEADER,DF_SKIP,0,0,{.dHeader={0,BT_OK,BT_CANCEL}}
},
{
D_EDIT_FIELD, 0, 2, 15,{.dEdit={sizeof(ENTRY_DIALOG_TITLE_STR),0,LGC_ORIG_WORD_MAXLEN-1,C89_92S(17,20)}}
},
{
D_EDIT_FIELD, 0, 2, 27,{.dEdit={sizeof(ENTRY_DIALOG_TITLE_STR "\0" ORIG_WORD_SHORT_STR),LGC_TRANS_WORD_MAXLEN,LGC_TRANS_WORD_MAXLEN-1,C89_92S(17,20)}}
},
{
D_EDIT_FIELD, 0, 2, 39,{.dEdit={sizeof(ENTRY_DIALOG_TITLE_STR "\0" ORIG_WORD_SHORT_STR "\0" TRANS_WORD_SHORT_STR),LGC_ORIG_WORD_MAXLEN+LGC_TRANS_WORD_MAXLEN,LGC_ORIG_CTXT_MAXLEN-1,C89_92S(17,20)}}
},
{
D_EDIT_FIELD, 0, 2, 51,{.dEdit={sizeof(ENTRY_DIALOG_TITLE_STR "\0" ORIG_WORD_SHORT_STR "\0" TRANS_WORD_SHORT_STR "\0" ORIG_CONTEXT_SHORT_STR),LGC_ORIG_WORD_MAXLEN+LGC_TRANS_WORD_MAXLEN+LGC_ORIG_CTXT_MAXLEN,LGC_TRANS_CTXT_MAXLEN-1,C89_92S(17,20)}}
},
{//End : nothing
.f={}
}
},
entryDialogStrings
};


///////////////////////////////////////////////////////////////////////////////
// "Part selection" dialog definition.
#define partSelectionDialogNrItems 2
#define partSelectionDialogStrings PART_SELECTION_DIALOG_TITLE_STR \
"\0" ENTER_LETTER_STR \
"\0"
__attribute__((__may_alias__)) SIZED_DIALOG(partSelectionDialogNrItems,offsetof(SIZED_DIALOG(partSelectionDialogNrItems,0),String)) partSelectionDialog =
{
offsetof(SIZED_DIALOG(partSelectionDialogNrItems,0),String), partSelectionDialogNrItems,C89_92S(160,240),C89_92S(40,40),NoCallBack,
{
{//Title
D_HEADER,DF_SKIP,0,0,{.dHeader={0,BT_OK,BT_CANCEL}}
},
// {
// D_TEXT,DF_SKIP,3,20,{.dText={sizeof(PART_SELECTION_DIALOG_TITLE_STR)}}
// },
{
D_EDIT_FIELD, 0, 3, 15,{.dEdit={sizeof(PART_SELECTION_DIALOG_TITLE_STR),0,1,5}}
},
{//End : nothing
.f={}
}
},
partSelectionDialogStrings
};


Source: http://opensvn.csie.org/LGC/trunk/ , fichiers lgcctribmenusdialogs_ti68k.h et lgcctribmenusdialogs_ti68k.c

(Si ça vous amuse, vous pouvez tous jeter un coup d'oeil aux autres fichiers).
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

8

Euh, de l'ASM j'ai jamais fait grin, alors si je pouvais avoir un exemple clair d'utilisation en C ca serait gentil
Parceque la je pige pas comment ca marche ton menu, et quelles en sont les possibilites.

Ca a servit pour que software ?

9

> Euh, de l'ASM j'ai jamais fait , alors si je pouvais avoir un exemple clair d'utilisation en C
S'il n'y en a pas dans la doc de TIGCC, je ne crois pas en avoir... Peut-être dans certaines contributions à la doc de TIGCC de "Wazabbe" et "C Bien", mais elles ne sont pas super faciles à trouver, et ce n'est pas dit qu'elles fonctionnent parfaitement...
Ce menu a été fait à partir d'un autre menu pour tthdex-internal-unusable, lui-même fait à partir de la doc de TIGCC, qui décrit le format du menu en ASM et donne un exemple.

> Parceque la je pige pas comment ca marche ton menu,
Ben, la doc de TIGCC l'explique mieux que moi smile
> et quelles en sont les possibilites.
Tu testes grin

Pour les dialogs, c'est pareil: teste mes exemples, et RTM smile

> Ca a servit pour que software ?
Ah oui, c'est vrai qu'il n'y a ni readme ni vraie doc pour ce soft... Le code contient des commentaires Doxygen, mais ça ne t'aidera pas énormément.

C'est ce que j'ai fait pendant l'été 2005 et un peu après, dans le cadre de mon stage de Magistère L3: une librairie permettant de gérer des dictionnaires dans un certain format, et une application permettant de lire et modifier ces dictionnaires... Le but était de faire des applications d'aide à l'apprentissage des langues, mais le projet n'a jamais été fini, et ne le sera probablement jamais.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.