IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 13394


Ignore:
Timestamp:
May 15, 2007, 5:42:03 PM (19 years ago)
Author:
eugene
Message:

various fixes; added optional zoom, etc

Location:
branches/kapa-mods-2007-05/Ohana/src
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • branches/kapa-mods-2007-05/Ohana/src/kapa2/src/CheckPipe.c

    r13391 r13394  
    2222    if (sock == -1) return (TRUE);
    2323    close (InitSocket); /* stop listening on this socket */
     24    fcntl (sock, F_SETFL, O_NONBLOCK); 
    2425  }
    2526
  • branches/kapa-mods-2007-05/Ohana/src/kapa2/src/Image.c

    r13344 r13394  
    106106             image[0].picture.dx, image[0].picture.dy);
    107107
    108   XPutImage (graphic[0].display, graphic[0].window, graphic[0].gc,
    109              image[0].cmapbar.pix, 0, 0,
    110              image[0].cmapbar.x, image[0].cmapbar.y,
    111              image[0].cmapbar.dx, image[0].cmapbar.dy);
    112 
    113   CrossHairs (graphic, image);
    114 
    115108  for (i = 0; i < NOVERLAYS; i++) {
    116109    if (image[0].overlay[i].active) {
     
    122115# endif
    123116
    124   // XXX make this optional?a
    125   if (1) {
     117  if (image[0].location) {
     118    XPutImage (graphic[0].display, graphic[0].window, graphic[0].gc,
     119               image[0].cmapbar.pix, 0, 0,
     120               image[0].cmapbar.x, image[0].cmapbar.y,
     121               image[0].cmapbar.dx, image[0].cmapbar.dy);
     122
     123    CrossHairs (graphic, image);
     124 
    126125    /* erase everything below zoom box, then draw */
    127126    XSetForeground (graphic[0].display, graphic[0].gc, graphic[0].back);
     
    139138      DrawButton (graphic, &image[0].overlay_button[i]);
    140139    }
     140    StatusBox (graphic, image);
    141141  }
    142 
    143   StatusBox (graphic, image);
    144142
    145143  FlushDisplay (graphic[0].display);
  • branches/kapa-mods-2007-05/Ohana/src/kapa2/src/LoadFrame.c

    r13344 r13394  
    6262  }
    6363
     64  SetGraphSize (section);
    6465  if (USE_XWINDOW) DrawFrame (graph);
    6566  FlushDisplay ();
  • branches/kapa-mods-2007-05/Ohana/src/kapa2/src/Refresh.c

    r13320 r13394  
    2121  for (i = 0; i < Nsection; i++) {
    2222      section = GetSectionByNumber (i);
     23      DrawImage (section->image);
    2324      DrawGraph (section->graph);
    24       DrawImage (section->image);
    2525  }
    2626
  • branches/kapa-mods-2007-05/Ohana/src/kapa2/src/SetImageSize.c

    r13320 r13394  
    77void SetImageSize (Section *section) {
    88
     9  int Xs, Ys, Xe, Ye, dX, dY;
    910  KapaImageWidget *image;
    1011  Graphic *graphic;
     
    1617  graphic = GetGraphic ();
    1718
    18   image[0].cmapbar.dx = graphic[0].dx - 2*PAD1;
    19   image[0].cmapbar.dy = COLORPAD;
    20   image[0].cmapbar.x = PAD1;
    21   image[0].cmapbar.y = PAD1;
     19  /* the image is placed within the graphic window in region specified by section */
     20  Xs = graphic[0].dx * section[0].x;
     21  Ys = graphic[0].dy * (1 - section[0].y - section[0].dy);
     22  dX = graphic[0].dx * section[0].dx;
     23  dY = graphic[0].dy * section[0].dy;
    2224
    23   image[0].zoom.dx = ZOOM_X;
    24   image[0].zoom.dy = ZOOM_Y;
    25   image[0].zoom.x = graphic[0].dx - PAD1 - ZOOM_X;
    26   image[0].zoom.y = image[0].cmapbar.y + image[0].cmapbar.dy + PAD2;
     25  // XXX make this user-setable
     26  image[0].location = 0;
    2727
    28   image[0].picture.dx = image[0].zoom.x - 2*PAD1 - 25;
    29   image[0].picture.dy = graphic[0].dy - 2*PAD1 - PAD2 - COLORPAD - 25;
    30   image[0].picture.x = PAD1 + 25;
    31   image[0].picture.y = PAD1 + PAD2 + COLORPAD;
     28  switch (image[0].location) {
     29    case 0:
     30      image[0].picture.dx = dX - 2*PAD1;
     31      image[0].picture.dy = dY - 2*PAD1;
     32      image[0].picture.x = Xs + PAD1;
     33      image[0].picture.y = Ys + PAD1;
     34      if (USE_XWINDOW) CreatePicture (image, graphic);
     35      Remap (graphic, image, &image[0].matrix);
     36      return;
    3237
    33   /** everything below is tied in x-dir to the zoom box **/
    34   image[0].text_x = image[0].zoom.x;
    35   image[0].text_y = image[0].zoom.y + image[0].zoom.dy + PAD2;
     38    case 4:
     39      image[0].picture.dx = dX - 2*PAD1 - ZOOM_X;
     40      image[0].picture.dy = dY - 2*PAD1 - PAD2 - COLORPAD - 25;
     41      image[0].picture.x = Xs + PAD1;
     42      image[0].picture.y = Ys + PAD1 + PAD2 + COLORPAD;
    3643
    37   /*  image[0].PS_button.y = graphic[0].dy - BUTTON_HEIGHT - PAD1; */
    38   image[0].PS_button.x = image[0].zoom.x + 5;
    39   image[0].PS_button.y = 2*ZOOM_Y;
     44      image[0].cmapbar.dx = dX - 2*PAD1;
     45      image[0].cmapbar.dy = COLORPAD;
     46      image[0].cmapbar.x = Xs + PAD1;
     47      image[0].cmapbar.y = Ys + PAD1;
    4048
    41   /** everything below is tied to the PS_button in y-dir **/
    42   image[0].grey_button.x = image[0].PS_button.x + image[0].PS_button.dx + PAD1;
    43   image[0].grey_button.y = image[0].PS_button.y;
     49      // XXX zoom should scale somewhat with the image (with a min and a max)
     50      image[0].zoom.dx = ZOOM_X;
     51      image[0].zoom.dy = ZOOM_Y;
     52      image[0].zoom.x = Xs + dX - PAD1 - ZOOM_X;
     53      image[0].zoom.y = Ys + PAD1 + PAD2 + COLORPAD;
    4454
    45   image[0].rainbow_button.x = image[0].grey_button.x + image[0].grey_button.dx + PAD1;
    46   image[0].rainbow_button.y = image[0].PS_button.y;
     55      /** everything below is tied in x-dir to the zoom box **/
     56      image[0].text_x = image[0].zoom.x;
     57      image[0].text_y = image[0].zoom.y + image[0].zoom.dy + PAD2;
    4758
    48   image[0].puns_button.x = image[0].rainbow_button.x + image[0].rainbow_button.dx + PAD1;
    49   image[0].puns_button.y = image[0].PS_button.y;
     59      /*  image[0].PS_button.y = graphic[0].dy - BUTTON_HEIGHT - PAD1; */
     60      image[0].PS_button.x = image[0].zoom.x + 5;
     61      image[0].PS_button.y = Ys + 2*ZOOM_Y;
    5062
    51   image[0].recenter_button.x = image[0].puns_button.x + image[0].puns_button.dx + PAD1;
    52   image[0].recenter_button.y = image[0].PS_button.y;
     63      /** everything below is tied to the PS_button in y-dir **/
     64      image[0].grey_button.x = image[0].PS_button.x + image[0].PS_button.dx + PAD1;
     65      image[0].grey_button.y = image[0].PS_button.y;
    5366
    54   image[0].overlay_button[0].x = image[0].zoom.x + 5;
    55   image[0].overlay_button[0].y = image[0].PS_button.y - BUTTON_HEIGHT - PAD1;
     67      image[0].rainbow_button.x = image[0].grey_button.x + image[0].grey_button.dx + PAD1;
     68      image[0].rainbow_button.y = image[0].PS_button.y;
     69
     70      image[0].puns_button.x = image[0].rainbow_button.x + image[0].rainbow_button.dx + PAD1;
     71      image[0].puns_button.y = image[0].PS_button.y;
     72
     73      image[0].recenter_button.x = image[0].puns_button.x + image[0].puns_button.dx + PAD1;
     74      image[0].recenter_button.y = image[0].PS_button.y;
     75
     76      image[0].overlay_button[0].x = image[0].zoom.x + 5;
     77      image[0].overlay_button[0].y = image[0].PS_button.y - BUTTON_HEIGHT - PAD1;
    5678   
    57   image[0].overlay_button[1].x = image[0].overlay_button[0].x + image[0].overlay_button[0].dx + PAD1;
    58   image[0].overlay_button[1].y = image[0].PS_button.y - BUTTON_HEIGHT - PAD1;
     79      image[0].overlay_button[1].x = image[0].overlay_button[0].x + image[0].overlay_button[0].dx + PAD1;
     80      image[0].overlay_button[1].y = image[0].PS_button.y - BUTTON_HEIGHT - PAD1;
    5981
    60   image[0].overlay_button[2].x = image[0].overlay_button[1].x + image[0].overlay_button[1].dx + PAD1;
    61   image[0].overlay_button[2].y = image[0].PS_button.y - BUTTON_HEIGHT - PAD1;
     82      image[0].overlay_button[2].x = image[0].overlay_button[1].x + image[0].overlay_button[1].dx + PAD1;
     83      image[0].overlay_button[2].y = image[0].PS_button.y - BUTTON_HEIGHT - PAD1;
    6284
    63   image[0].overlay_button[3].x = image[0].overlay_button[2].x + image[0].overlay_button[2].dx + PAD1;
    64   image[0].overlay_button[3].y = image[0].PS_button.y - BUTTON_HEIGHT - PAD1;
     85      image[0].overlay_button[3].x = image[0].overlay_button[2].x + image[0].overlay_button[2].dx + PAD1;
     86      image[0].overlay_button[3].y = image[0].PS_button.y - BUTTON_HEIGHT - PAD1;
    6587
    66   image[0].hms_button.x = image[0].overlay_button[3].x + image[0].overlay_button[3].dx + PAD1;
    67   image[0].hms_button.y = image[0].PS_button.y - BUTTON_HEIGHT - PAD1;
     88      image[0].hms_button.x = image[0].overlay_button[3].x + image[0].overlay_button[3].dx + PAD1;
     89      image[0].hms_button.y = image[0].PS_button.y - BUTTON_HEIGHT - PAD1;
     90      break;
     91
     92    default:
     93      image[0].picture.dx = dX - 2*PAD1 - ZOOM_X;
     94      image[0].picture.dy = dY - 2*PAD1 - PAD2 - COLORPAD - 25;
     95      image[0].picture.x = Xs + PAD1;
     96      image[0].picture.y = Ys + PAD1 + PAD2 + COLORPAD;
     97
     98      image[0].cmapbar.dx = dX - 2*PAD1;
     99      image[0].cmapbar.dy = COLORPAD;
     100      image[0].cmapbar.x = Xs + PAD1;
     101      image[0].cmapbar.y = Ys + PAD1;
     102
     103      // XXX zoom should scale somewhat with the image (with a min and a max)
     104      image[0].zoom.dx = ZOOM_X;
     105      image[0].zoom.dy = ZOOM_Y;
     106      image[0].zoom.x = Xs + dX - PAD1 - ZOOM_X;
     107      image[0].zoom.y = Ys + PAD1 + PAD2 + COLORPAD;
     108
     109      /** everything below is tied in x-dir to the zoom box **/
     110      image[0].text_x = image[0].zoom.x;
     111      image[0].text_y = image[0].zoom.y + image[0].zoom.dy + PAD2;
     112
     113      /*  image[0].PS_button.y = graphic[0].dy - BUTTON_HEIGHT - PAD1; */
     114      image[0].PS_button.x = image[0].zoom.x + 5;
     115      image[0].PS_button.y = Ys + 2*ZOOM_Y;
     116
     117      /** everything below is tied to the PS_button in y-dir **/
     118      image[0].grey_button.x = image[0].PS_button.x + image[0].PS_button.dx + PAD1;
     119      image[0].grey_button.y = image[0].PS_button.y;
     120
     121      image[0].rainbow_button.x = image[0].grey_button.x + image[0].grey_button.dx + PAD1;
     122      image[0].rainbow_button.y = image[0].PS_button.y;
     123
     124      image[0].puns_button.x = image[0].rainbow_button.x + image[0].rainbow_button.dx + PAD1;
     125      image[0].puns_button.y = image[0].PS_button.y;
     126
     127      image[0].recenter_button.x = image[0].puns_button.x + image[0].puns_button.dx + PAD1;
     128      image[0].recenter_button.y = image[0].PS_button.y;
     129
     130      image[0].overlay_button[0].x = image[0].zoom.x + 5;
     131      image[0].overlay_button[0].y = image[0].PS_button.y - BUTTON_HEIGHT - PAD1;
     132   
     133      image[0].overlay_button[1].x = image[0].overlay_button[0].x + image[0].overlay_button[0].dx + PAD1;
     134      image[0].overlay_button[1].y = image[0].PS_button.y - BUTTON_HEIGHT - PAD1;
     135
     136      image[0].overlay_button[2].x = image[0].overlay_button[1].x + image[0].overlay_button[1].dx + PAD1;
     137      image[0].overlay_button[2].y = image[0].PS_button.y - BUTTON_HEIGHT - PAD1;
     138
     139      image[0].overlay_button[3].x = image[0].overlay_button[2].x + image[0].overlay_button[2].dx + PAD1;
     140      image[0].overlay_button[3].y = image[0].PS_button.y - BUTTON_HEIGHT - PAD1;
     141
     142      image[0].hms_button.x = image[0].overlay_button[3].x + image[0].overlay_button[3].dx + PAD1;
     143      image[0].hms_button.y = image[0].PS_button.y - BUTTON_HEIGHT - PAD1;
     144      break;
     145  }
    68146
    69147  if (USE_XWINDOW) {
  • branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/close.c

    r13391 r13394  
    1515
    1616  if (!GetGraph (NULL, &kapa, name)) return (FALSE);
     17
     18  close_kapa (name);
    1719  FREE (name);
    18 
    19   // close_kapa (name);
    2020
    2121  return (TRUE);
  • branches/kapa-mods-2007-05/Ohana/src/opihi/dimm/dimm.c.in

    r12280 r13394  
    5050/* add program-dependent exit functions here */
    5151void cleanup () {
    52   QuitImage ();
    53   QuitGraph ();
     52  QuitKapa ();
    5453  return;
    5554}
  • branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/dvo.c.in

    r12280 r13394  
    5555/* add program-dependent exit functions here */
    5656void cleanup () {
    57   QuitImage ();
    58   QuitGraph ();
     57  QuitKapa ();
    5958  return;
    6059}
  • branches/kapa-mods-2007-05/Ohana/src/opihi/include/display.h

    r13391 r13394  
    3434int           SelectOverlay         PROTO((char *name, int *number));
    3535
     36void QuitKapa ();
    3637void InitKapa ();
    3738int open_kapa (int entry);
     39int close_kapa (char *name);
    3840int AddKapaDevice (char *name);
    3941int DelKapaDevice (char *name);
  • branches/kapa-mods-2007-05/Ohana/src/opihi/lib.data/open_kapa.c

    r13391 r13394  
    5050  N = FindKapaDevice (name);
    5151  if (N == -1) return (FALSE);
     52
    5253  if (Socket[N] != -1) close (Socket[N]);
    5354  free (Device[N]);
    5455  for (i = N; i < Ndevice - 1; i++) {
    55     Device[N] = Device[N+1];
    56     Socket[N] = Socket[N+1];
    57   }
     56    Device[i] = Device[i+1];
     57    Socket[i] = Socket[i+1];
     58  }
     59
     60  if (N == Active) {
     61    Active = -1;
     62  }
     63
    5864  Ndevice --;
    5965  REALLOCATE (Device, char *, Ndevice);
    6066  REALLOCATE (Socket, int, Ndevice);
     67
    6168  return (TRUE);
    6269}
     
    6673
    6774  int i;
     75
     76  if (name == NULL) return (-1);
    6877
    6978  for (i = 0; i < Ndevice; i++) {
     
    255264  *range = Xrange;
    256265}
     266
     267int close_kapa (char *name) {
     268
     269  int N;
     270
     271  N = FindKapaDevice (name);
     272  if (N == -1) {
     273    if (Active < 0) return (FALSE);
     274    name = Device[Active];
     275  }
     276  DelKapaDevice (name);
     277  return (TRUE);
     278}
     279
     280void QuitKapa () {
     281
     282  int i;
     283 
     284  for (i = 0; i < Ndevice; i++) {
     285    if (Socket[i] != -1) close (Socket[i]);
     286    if (Device[i] != NULL) free (Device[i]);
     287  }
     288  REALLOCATE (Socket, int, 1);
     289  REALLOCATE (Device, char *, 1);
     290
     291  Ndevice = 0;
     292  Active = -1;
     293}
  • branches/kapa-mods-2007-05/Ohana/src/opihi/lib.data/style_args.c

    r13391 r13394  
    1313    remove_argument (N, argc, argv);
    1414  }
    15   if (!GetGraph (&graphmode, kapa, name)) return (FALSE);
     15  if (!GetGraph (graphmode, kapa, name)) return (FALSE);
    1616  FREE (name);
    1717
  • branches/kapa-mods-2007-05/Ohana/src/opihi/mana/mana.c.in

    r13344 r13394  
    5151/* add program-dependent exit functions here */
    5252void cleanup () {
    53         //   QuitImage ();
    54         //   QuitGraph ();
     53  QuitKapa ();
    5554  return;
    5655}
  • branches/kapa-mods-2007-05/Ohana/src/opihi/mana/opihi.c

    r10647 r13394  
    6464/* add program-dependent exit functions here */
    6565void cleanup () {
    66   /* -libdisplay
    67   QuitImage ();
    68   QuitGraph (); */
     66  QuitKapa ();
    6967  return;
    7068}
  • branches/kapa-mods-2007-05/Ohana/src/opihi/pantasks/pantasks.c.in

    r12280 r13394  
    6464/* add program-dependent exit functions here */
    6565void cleanup () {
    66   QuitImage ();
    67   QuitGraph ();
     66  QuitKapa ();
    6867  QuitController ();
    6968  return;
  • branches/kapa-mods-2007-05/Ohana/src/opihi/pantasks/pantasks_client.c.in

    r12280 r13394  
    5454/* add program-dependent exit functions here */
    5555void cleanup () {
    56   QuitImage ();
    57   QuitGraph ();
     56  QuitKapa ();
    5857  return;
    5958}
  • branches/kapa-mods-2007-05/Ohana/src/opihi/pantasks/pantasks_server.c

    r11890 r13394  
    7474/* add program-dependent exit functions here */
    7575void cleanup () {
    76   // QuitImage ();
    77   // QuitGraph ();
    78   // QuitController ();
     76  QuitKapa ();
     77  QuitController ();
    7978  return;
    8079}
Note: See TracChangeset for help on using the changeset viewer.