source: tags/initial/NTREE/NT_ins_col.cxx

Last change on this file was 2, checked in by oldcode, 23 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.5 KB
Line 
1#include <stdio.h>
2#include <stdlib.h>
3#include <arbdb.h>
4#include <arbdbt.h>
5#include <aw_root.hxx>
6#include <aw_device.hxx>
7#include <aw_window.hxx>
8#include <aw_awars.hxx>
9
10extern GBDATA *gb_main;         /* muss existieren */
11
12void create_insertchar_variables(AW_root *root,AW_default db1)
13        {
14        root->awar_int( AWAR_CURSOR_POSITION, 0  ,    (void*)gb_main);
15        root->awar_int( "insertchar/nchar", 0  ,    db1);
16        root->awar("insertchar/nchar")->set_minmax( 0, 999000);
17        root->awar_string( "insertchar/characters", ""  ,    db1);
18}
19
20void awt_inserchar_event(AW_window *aws,AW_CL awcl_mode)
21        {
22        AW_root *root = aws->get_root();
23        char *alignment;
24        long    pos;
25        long    nchar;
26        char    *deletes;
27        int     mode = (int)awcl_mode;
28       
29        pos = root->awar(AWAR_CURSOR_POSITION)->read_int()-1;
30        nchar = root->awar("insertchar/nchar")->read_int() * mode;
31        deletes = root->awar("insertchar/characters")->read_string();
32
33        GB_begin_transaction(gb_main);
34        alignment = GBT_get_default_alignment(gb_main);
35
36        if (alignment) {
37                GB_ERROR error = GBT_insert_character(gb_main,alignment,pos,nchar,deletes);
38                if (error) {
39                        GB_abort_transaction(gb_main);
40                        aw_message(error);
41                }else{
42                        GBT_check_data(gb_main,0);
43                        GB_commit_transaction(gb_main);
44                }
45        }else{
46                printf("ERROR no alignment found\n");
47                GB_abort_transaction(gb_main);
48        }
49
50        free(deletes);
51        free(alignment);
52}
53
54AW_window *create_insertchar_window(AW_root *root, AW_default def)
55        {
56        AWUSE(root);
57        AWUSE(def);
58
59        static AW_window_simple *aws = 0;
60        if (aws) return aws;
61        aws = new AW_window_simple;
62
63        aws->init( root, "INSERT_COLOUM", "INSERT CHAR", 10, 10 );
64
65        aws->load_xfig("inschar.fig");
66        aws->button_length(8);
67
68        aws->callback( (AW_CB0)AW_POPDOWN);
69        aws->at("close");
70        aws->create_button("CLOSE","CLOSE","C");                           
71
72        aws->callback( AW_POPUP_HELP,(AW_CL)"insdelchar.hlp");
73        aws->at("help");
74        aws->create_button("HELP","HELP","H");                     
75
76        aws->label_length(27);
77
78        aws->at("pos");
79        aws->label("Sequence Position");
80        aws->create_input_field(AWAR_CURSOR_POSITION,6); // @@@ mit EDIT4-Cursor-position linken
81
82        aws->at("len");
83        aws->label("How many Characters");
84        aws->create_input_field("insertchar/nchar",6);
85
86        aws->at("characters");
87        aws->label("Delete Only (% = all)");
88        aws->create_input_field("insertchar/characters",6);
89       
90        aws->callback(awt_inserchar_event,(AW_CL)1);
91        aws->at("insert");
92        aws->create_button("INSERT","INSERT","I");                         
93
94        aws->callback(awt_inserchar_event,(AW_CL)-1);
95        aws->at("delete");
96        aws->create_button("DELETE","DELETE","D");                         
97
98        return (AW_window *)aws;
99}
Note: See TracBrowser for help on using the repository browser.