Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
gmsh
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Larry Price
gmsh
Commits
7b7abd99
Commit
7b7abd99
authored
24 years ago
by
Christophe Geuzaine
Browse files
Options
Downloads
Patches
Plain Diff
*** empty log message ***
parent
9d5d01f3
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
Fltk/GUI.cpp
+264
-9
264 additions, 9 deletions
Fltk/GUI.cpp
Fltk/GUI.h
+32
-3
32 additions, 3 deletions
Fltk/GUI.h
Fltk/Main.cpp
+3
-3
3 additions, 3 deletions
Fltk/Main.cpp
with
299 additions
and
15 deletions
Fltk/GUI.cpp
+
264
−
9
View file @
7b7abd99
...
...
@@ -17,7 +17,8 @@
//int strtok_r(char *, char const *, char **){return 0;}
extern
Context_T
CTX
;
extern
Context_T
CTX
;
extern
List_T
*
Post_ViewList
;
// Definition of the static menus
...
...
@@ -52,6 +53,167 @@ Fl_Menu_Item m_module_table[] = {
{
0
}
};
// Definition of the dynamic contexts
Context_Item
menu_geom
[]
=
{
{
"0"
,
NULL
}
,
{
"Elementary"
,
NULL
}
,
{
"Physical"
,
NULL
}
,
{
"Reload"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_geom_elementary
[]
=
{
{
"0"
,
NULL
}
,
{
"Add"
,
NULL
}
,
{
"Translate"
,
NULL
}
,
{
"Rotate"
,
NULL
}
,
{
"Dilate"
,
NULL
}
,
{
"Symmetry"
,
NULL
}
,
{
"Extrude"
,
NULL
}
,
{
"Delete"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_geom_elementary_add
[]
=
{
{
"0"
,
NULL
}
,
{
"New"
,
NULL
}
,
{
"Translate"
,
NULL
}
,
{
"Rotate"
,
NULL
}
,
{
"Dilate"
,
NULL
}
,
{
"Symmetry"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_geom_elementary_add_new
[]
=
{
{
"0"
,
NULL
}
,
{
"Parameter"
,
NULL
}
,
{
"Point"
,
NULL
}
,
{
"Line"
,
NULL
}
,
{
"Spline"
,
NULL
}
,
{
"Circle"
,
NULL
}
,
{
"Ellipsis"
,
NULL
}
,
{
"Plane Surface"
,
NULL
}
,
{
"Ruled Surface"
,
NULL
}
,
{
"Volume"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_geom_elementary_add_translate
[]
=
{
{
"0"
,
NULL
}
,
{
"Point"
,
NULL
}
,
{
"Curve"
,
NULL
}
,
{
"Surface"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_geom_elementary_add_rotate
[]
=
{
{
"0"
,
NULL
}
,
{
"Point"
,
NULL
}
,
{
"Curve"
,
NULL
}
,
{
"Surface"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_geom_elementary_add_dilate
[]
=
{
{
"0"
,
NULL
}
,
{
"Point"
,
NULL
}
,
{
"Curve"
,
NULL
}
,
{
"Surface"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_geom_elementary_add_symmetry
[]
=
{
{
"0"
,
NULL
}
,
{
"Point"
,
NULL
}
,
{
"Curve"
,
NULL
}
,
{
"Surface"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_geom_elementary_translate
[]
=
{
{
"0"
,
NULL
}
,
{
"Point"
,
NULL
}
,
{
"Curve"
,
NULL
}
,
{
"Surface"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_geom_elementary_rotate
[]
=
{
{
"0"
,
NULL
}
,
{
"Point"
,
NULL
}
,
{
"Curve"
,
NULL
}
,
{
"Surface"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_geom_elementary_dilate
[]
=
{
{
"0"
,
NULL
}
,
{
"Point"
,
NULL
}
,
{
"Curve"
,
NULL
}
,
{
"Surface"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_geom_elementary_symmetry
[]
=
{
{
"0"
,
NULL
}
,
{
"Point"
,
NULL
}
,
{
"Curve"
,
NULL
}
,
{
"Surface"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_geom_elementary_extrude
[]
=
{
{
"0"
,
NULL
}
,
{
"Point"
,
NULL
}
,
{
"Curve"
,
NULL
}
,
{
"Surface"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_geom_elementary_delete
[]
=
{
{
"0"
,
NULL
}
,
{
"Point"
,
NULL
}
,
{
"Curve"
,
NULL
}
,
{
"Surface"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_geom_physical
[]
=
{
{
"0"
,
NULL
}
,
{
"Add"
,
NULL
}
,
{
"Delete"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_geom_physical_add
[]
=
{
{
"0"
,
NULL
}
,
{
"Point"
,
NULL
}
,
{
"Line"
,
NULL
}
,
{
"Surface"
,
NULL
}
,
{
"Volume"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_geom_physical_delete
[]
=
{
{
"0"
,
NULL
}
,
{
"Point"
,
NULL
}
,
{
"Line"
,
NULL
}
,
{
"Surface"
,
NULL
}
,
{
"Volume"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_mesh
[]
=
{
{
"1"
,
NULL
}
,
{
"Define"
,
NULL
}
,
{
"1D"
,
NULL
}
,
{
"2D"
,
NULL
}
,
{
"3D"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_mesh_define
[]
=
{
{
"1"
,
NULL
}
,
{
"Length"
,
NULL
}
,
{
"Recombine"
,
NULL
}
,
{
"Transfinite"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_mesh_define_transfinite
[]
=
{
{
"1"
,
NULL
}
,
{
"Line"
,
NULL
}
,
{
"Surface"
,
NULL
}
,
{
"Volume"
,
NULL
}
,
{
NULL
}
};
Context_Item
menu_post
[]
=
{
{
"2"
,
NULL
}
,
{
NULL
}
};
// The GUI constructor creates ONLY the widgets that always exist (we
// want the lowest memory footprint for the interface and the fastest
...
...
@@ -190,29 +352,36 @@ GUI::GUI() {
}
// Definition of general purpose public GUI functions. This is mainly
// for compatibility with the old Motif programming structure.
// Draw the opengl window
void
GUI
::
draw_gl
(){
g_opengl_window
->
redraw
();
}
// Draw the opengl overlay window
void
GUI
::
draw_gl_overlay
(){
g_opengl_window
->
redraw_overlay
();
}
// Run the GUI until no window is left
void
GUI
::
run
(){
Fl
::
run
();
}
// Check if any pending events and run them
void
GUI
::
check
(){
Fl
::
check
();
}
static
int
initw
,
inith
,
init
=
1
;
// Set the size of the graphical window
void
GUI
::
set_size
(
int
w
,
int
h
){
if
(
init
){
init
=
0
;
static
int
initw
,
inith
,
init
=
0
;
if
(
!
init
){
init
=
1
;
initw
=
w
;
inith
=
h
;
}
...
...
@@ -223,16 +392,102 @@ void GUI::set_size(int w, int h){
g_window
->
size
(
w
,
h
+
hh
);
}
// Dymanically set the height of the menu window
void
GUI
::
set_menu_size
(
int
nb_butt
){
m_window
->
size
(
m_window
->
w
(),
MH
+
nb_butt
*
BH
);
}
// The window for general options
// Dymanically set the context
void
GUI
::
set_context
(
Context_Item
*
menu_asked
,
int
flag
){
static
int
nb_back
=
0
,
nb_forward
=
0
,
init_context
=
0
;
static
Context_Item
*
menu_history
[
NB_HISTORY_MAX
];
Context_Item
*
menu
;
Post_View
*
v
;
int
i
;
if
(
!
init_context
){
init_context
=
1
;
for
(
i
=
0
;
i
<
NB_HISTORY_MAX
;
i
++
){
menu_history
[
i
]
=
NULL
;
}
}
if
(
flag
==
-
1
){
if
(
nb_back
>
1
){
nb_back
--
;
nb_forward
++
;
menu
=
menu_history
[
nb_back
-
1
];
}
else
return
;
}
else
if
(
flag
==
1
){
if
(
nb_forward
>
0
){
nb_back
++
;
nb_forward
--
;
menu
=
menu_history
[
nb_back
-
1
];
}
else
return
;
}
else
{
menu
=
menu_asked
;
if
(
!
nb_back
||
menu_history
[
nb_back
-
1
]
!=
menu
){
menu_history
[
nb_back
++
]
=
menu
;
}
nb_forward
=
0
;
}
int
nb
=
0
;
m_module_butt
->
value
(
atoi
(
menu
[
0
].
label
));
if
(
m_module_butt
->
value
()
==
2
){
// post-processing contexts
for
(
i
=
0
;
i
<
List_Nbr
(
Post_ViewList
)
;
i
++
)
{
if
(
i
==
NB_BUTT_MAX
)
break
;
nb
++
;
v
=
(
Post_View
*
)
List_Pointer
(
Post_ViewList
,
i
);
m_push_butt
[
i
]
->
hide
();
m_toggle_butt
[
i
]
->
show
();
m_toggle_butt
[
i
]
->
value
(
v
->
Visible
);
m_popup_butt
[
i
]
->
show
();
// v->NbTimeStep>1 : sensitive timestep
// v->ScalarOnly : sensitive vector, apply bgmesh
}
for
(
i
=
List_Nbr
(
Post_ViewList
)
;
i
<
NB_BUTT_MAX
;
i
++
)
{
m_push_butt
[
i
]
->
hide
();
m_toggle_butt
[
i
]
->
hide
();
m_popup_butt
[
i
]
->
hide
();
}
}
else
{
// geometry and mesh contexts
for
(
i
=
0
;
i
<
NB_BUTT_MAX
;
i
++
){
m_toggle_butt
[
i
]
->
hide
();
m_popup_butt
[
i
]
->
hide
();
if
(
menu
[
i
+
1
].
label
){
m_push_butt
[
i
]
->
label
(
menu
[
i
+
1
].
label
);
//m_push_butt[i]->callback(menu[i+1].callback);
m_push_butt
[
i
]
->
show
();
nb
++
;
}
else
break
;
}
for
(
i
=
nb
;
i
<
NB_BUTT_MAX
;
i
++
){
m_toggle_butt
[
i
]
->
hide
();
m_popup_butt
[
i
]
->
hide
();
m_push_butt
[
i
]
->
hide
();
}
}
set_menu_size
(
nb
);
}
static
int
init_opt_
general
=
0
;
// Create the window for
general
options
void
GUI
::
opt_general
(){
s
e
t_
m
en
u_size
(
5
)
;
s
tatic
int
init_op
t_
g
en
eral
=
0
;
if
(
!
init_opt_general
){
init_opt_general
=
1
;
...
...
This diff is collapsed.
Click to expand it.
Fltk/GUI.h
+
32
−
3
View file @
7b7abd99
...
...
@@ -10,7 +10,6 @@
#include
<FL/Fl_Choice.H>
#include
<FL/Fl_Scroll.H>
#include
<FL/Fl_Tabs.H>
#include
<FL/Fl_Button.H>
#include
<FL/Fl_Return_Button.H>
#include
<FL/Fl_Toggle_Button.H>
...
...
@@ -18,10 +17,39 @@
#include
<FL/Fl_Light_Button.H>
#include
<FL/Fl_Menu_Button.H>
#include
<FL/Fl_Check_Button.H>
#include
<FL/Fl_Value_Input.H>
#define NB_BUTT_MAX 100
#define NB_BUTT_MAX 100
#define NB_HISTORY_MAX 1000
// The dynamic menus
typedef
struct
{
char
*
label
;
void
(
*
callback
)(
Fl_Widget
*
w
,
void
*
data
);
}
Context_Item
;
extern
Context_Item
menu_geom
[];
extern
Context_Item
menu_geom_elementary
[];
extern
Context_Item
menu_geom_elementary_add
[];
extern
Context_Item
menu_geom_elementary_add_new
[];
extern
Context_Item
menu_geom_elementary_add_translate
[];
extern
Context_Item
menu_geom_elementary_add_rotate
[];
extern
Context_Item
menu_geom_elementary_add_dilate
[];
extern
Context_Item
menu_geom_elementary_add_symmetry
[];
extern
Context_Item
menu_geom_elementary_translate
[];
extern
Context_Item
menu_geom_elementary_rotate
[];
extern
Context_Item
menu_geom_elementary_dilate
[];
extern
Context_Item
menu_geom_elementary_symmetry
[];
extern
Context_Item
menu_geom_elementary_extrude
[];
extern
Context_Item
menu_geom_elementary_delete
[];
extern
Context_Item
menu_geom_physical
[];
extern
Context_Item
menu_geom_physical_add
[];
extern
Context_Item
menu_geom_physical_delete
[];
extern
Context_Item
menu_mesh
[];
extern
Context_Item
menu_mesh_define
[];
extern
Context_Item
menu_mesh_define_transfinite
[];
extern
Context_Item
menu_post
[];
// New composite widgets
...
...
@@ -92,6 +120,7 @@ public:
void
draw_gl_overlay
();
void
set_size
(
int
w
,
int
h
);
void
set_menu_size
(
int
nb_butt
);
void
set_context
(
Context_Item
menu
[],
int
flag
);
void
opt_general
();
void
opt_geometry
();
...
...
This diff is collapsed.
Click to expand it.
Fltk/Main.cpp
+
3
−
3
View file @
7b7abd99
// $Id: Main.cpp,v 1.
1
2001-01-08
08:16:27
geuzaine Exp $
// $Id: Main.cpp,v 1.
2
2001-01-08
14:51:30
geuzaine Exp $
#include
<signal.h>
...
...
@@ -125,10 +125,10 @@ int main(int argc, char *argv[]){
if
(
nbf
>
1
){
for
(
i
=
1
;
i
<
nbf
;
i
++
)
MergeProblem
(
TheFileNameTab
[
i
]);
//ActualizeContextCb (NULL,(XtPointer)CONTEXT_POST,NULL
);
WID
->
set_context
(
menu_post
,
0
);
}
else
{
//ActualizeContextCb(NULL,(XtPointer)CONTEXT_GEOM,NULL
);
WID
->
set_context
(
menu_geom
,
0
);
}
// Read background mesh on disk
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment