Janis Streib
30.03.22 8c7455636f3d259c44540ba6da9d3aaee993eeeb
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
// FrameDlg.cpp
 
#include <gtk/gtk.h>
#include "FrameDlg.h"
#include <string.h>
#include <glib/gprintf.h>
#include <stdlib.h>
 
 
FrameDlg::FrameDlg(int t,float* data){
 
  char title[100];
  const char* strLab[6]={"Az:","El:","Rl:","X Translation:","Y Translation:","Z Translation:"};
  int labInd;
  GtkWidget* label[3];
  GtkWidget* table;
  gchar strVal[20];
 
  memcpy(m_data,data,sizeof(float)*3);
  if (t==FD_ROT){
    strcpy(title,"Set Frame Rotation");
    labInd=0;
  }
  else {
    strcpy(title,"Set Frame Translation");
    labInd=3;
  }
 
 
  m_dlg=gtk_dialog_new_with_buttons(title,NULL,GTK_DIALOG_MODAL,GTK_STOCK_OK,GTK_RESPONSE_OK,
                  GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,NULL);
  gtk_container_set_border_width(GTK_CONTAINER(m_dlg),30);
 
  for (int i=0;i<3;i++){
    label[i]=gtk_label_new(strLab[labInd+i]);
    m_entry[i]=gtk_entry_new();
    g_sprintf(strVal,"%.3f",m_data[i]);
    gtk_entry_set_text(GTK_ENTRY(m_entry[i]),strVal);
  }
 
  table=gtk_grid_new();
  for (int i=0;i<3;i++){
      gtk_grid_attach(GTK_GRID(table),label[i],0,i,1,1);
      gtk_grid_attach(GTK_GRID(table),m_entry[i],1,i,1,1);
  }
  gtk_container_add(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(m_dlg))),table);
  gtk_widget_show_all(m_dlg);
 
}
 
void FrameDlg::update_data(){
 
  const gchar* str;
  for (int i=0;i<3;i++){
    str=gtk_entry_get_text(GTK_ENTRY(m_entry[i]));
    m_data[i]=atof(str);
  }
}
 
void FrameDlg::GetData(float* data){
 
  memcpy(data,m_data,sizeof(float)*3);
}