use managed calls
authorCarsten Haitzler <raster@rasterman.com>
Thu, 3 Nov 2005 11:34:55 +0000 (11:34 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Thu, 3 Nov 2005 11:34:55 +0000 (11:34 +0000)
SVN revision: 18243

src/bin/e_border.c
src/bin/e_scrollframe.c
src/bin/e_test.c

index 935c0f66dae3c6c3af1054bdbd5d215ace82b097..c3396830982284fd1e6364567015fd021dd31751 100644 (file)
@@ -632,6 +632,10 @@ e_border_move(E_Border *bd, int x, int y)
        ecore_x_netwm_sync_request_send(bd->client.win, bd->client.netwm.sync.serial++);
      }
 #endif
+   if (bd->internal_ecore_evas)
+     ecore_evas_managed_move(bd->internal_ecore_evas,
+                            bd->x + bd->client_inset.l,
+                            bd->y + bd->client_inset.t);
    ecore_x_icccm_move_resize_send(bd->client.win,
                                  bd->x + bd->client_inset.l,
                                  bd->y + bd->client_inset.t,
@@ -686,6 +690,10 @@ e_border_resize(E_Border *bd, int w, int h)
        bd->client.netwm.sync.wait++;
        ecore_x_netwm_sync_request_send(bd->client.win, bd->client.netwm.sync.serial++);
      }
+   if (bd->internal_ecore_evas)
+     ecore_evas_managed_move(bd->internal_ecore_evas,
+                            bd->x + bd->client_inset.l,
+                            bd->y + bd->client_inset.t);
    ecore_x_icccm_move_resize_send(bd->client.win,
                                  bd->x + bd->client_inset.l,
                                  bd->y + bd->client_inset.t,
@@ -744,6 +752,10 @@ e_border_move_resize(E_Border *bd, int x, int y, int w, int h)
        bd->client.netwm.sync.wait++;
        ecore_x_netwm_sync_request_send(bd->client.win, bd->client.netwm.sync.serial++);
      }
+   if (bd->internal_ecore_evas)
+     ecore_evas_managed_move(bd->internal_ecore_evas,
+                            bd->x + bd->client_inset.l,
+                            bd->y + bd->client_inset.t);
    ecore_x_icccm_move_resize_send(bd->client.win,
                                  bd->x + bd->client_inset.l,
                                  bd->y + bd->client_inset.t,
@@ -2294,6 +2306,10 @@ e_border_frame_recalc(E_Border *bd)
        bd->need_shape_merge = 1;
        bd->need_shape_export = 1;
      }
+   if (bd->internal_ecore_evas)
+     ecore_evas_managed_move(bd->internal_ecore_evas,
+                            bd->x + bd->client_inset.l,
+                            bd->y + bd->client_inset.t);
    ecore_x_icccm_move_resize_send(bd->client.win,
                                  bd->x + bd->client_inset.l,
                                  bd->y + bd->client_inset.t,
@@ -5011,6 +5027,10 @@ _e_border_eval(E_Border *bd)
             bd->placed = 1;
          }
 
+       if (bd->internal_ecore_evas)
+         ecore_evas_managed_move(bd->internal_ecore_evas,
+                                 bd->x + bd->client_inset.l,
+                                 bd->y + bd->client_inset.t);
        ecore_x_icccm_move_resize_send(bd->client.win,
                                       bd->x + bd->client_inset.l,
                                       bd->y + bd->client_inset.t,
@@ -5090,6 +5110,10 @@ _e_border_eval(E_Border *bd)
 
    if ((bd->changes.pos) && (bd->changes.size))
      {
+       if (bd->internal_ecore_evas)
+         ecore_evas_managed_move(bd->internal_ecore_evas,
+                                 bd->x + bd->client_inset.l,
+                                 bd->y + bd->client_inset.t);
 //     printf("##- BORDER NEEDS POS/SIZE CHANGE 0x%x\n", bd->client.win);
        if ((bd->shaded) && (!bd->shading))
          {
@@ -5175,12 +5199,20 @@ _e_border_eval(E_Border *bd)
     }
    else if (bd->changes.pos)
      {
+       if (bd->internal_ecore_evas)
+         ecore_evas_managed_move(bd->internal_ecore_evas,
+                                 bd->x + bd->client_inset.l,
+                                 bd->y + bd->client_inset.t);
        ecore_x_window_move(bd->win, bd->x, bd->y);
        e_container_shape_move(bd->shape, bd->x, bd->y);
        bd->changes.pos = 0;
      }
    else if (bd->changes.size)
      {
+       if (bd->internal_ecore_evas)
+         ecore_evas_managed_move(bd->internal_ecore_evas,
+                                 bd->x + bd->client_inset.l,
+                                 bd->y + bd->client_inset.t);
 //     printf("##- BORDER NEEDS SIZE CHANGE 0x%x\n", bd->client.win);
        if (bd->shaded && !bd->shading)
          {
@@ -5411,6 +5443,10 @@ _e_border_eval(E_Border *bd)
                       bd->y = y - (bd->client_inset.t >> 1);
                       bd->changed = 1;
                       bd->changes.pos = 1;
+                      if (bd->internal_ecore_evas)
+                        ecore_evas_managed_move(bd->internal_ecore_evas,
+                                                bd->x + bd->client_inset.l,
+                                                bd->y + bd->client_inset.t);
                       ecore_x_icccm_move_resize_send(bd->client.win,
                                                      bd->x + bd->client_inset.l,
                                                      bd->y + bd->client_inset.t,
index d52d79f470db439f5b79382943c1ee6f9a58c59b..e0b1e290c41a8f1d2567b08752e548f2736d89af 100644 (file)
@@ -196,8 +196,21 @@ e_scrollframe_child_pos_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y)
 void
 e_scrollframe_child_region_show(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h)
 {
+   Evas_Coord mx = 0, my = 0, cw = 0, ch = 0, px = 0, py = 0, nx, ny;
+   
    API_ENTRY return;
-   /* FIXME: do this code */
+   sd->pan_func.max_get(sd->pan_obj, &mx, &my);
+   sd->pan_func.child_size_get(sd->pan_obj, &cw, &ch);
+   sd->pan_func.get(sd->pan_obj, &px, &py);
+   
+   nx = px;
+   if (x < px) nx = x;
+   else if ((x + w) > (px + (cw - mx))) nx = x + w - (cw - mx);
+   ny = py;
+   if (y < py) ny = y;
+   else if ((y + h) > (py + (ch - my))) ny = y + h - (ch - my);
+   if ((nx == px) && (ny == py)) return;
+   e_scrollframe_child_pos_set(obj, nx, ny);
 }
 
 void
index 3b301d5d4cc5ab57e6cbd22cb9ce71a7980d98c2..7c5e48997cb11b80f66563d203f38898267311d7 100644 (file)
@@ -311,10 +311,14 @@ _e_test_internal(E_Container *con)
 static void
 _e_test_click(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
+#if 1
    double size;
    
    size = (double)(rand() % 1000) / 999;
    evas_object_resize(obj, size * 1024, size * 768);
+#else
+   e_scrollframe_child_region_show(data, 1024, 768, 100, 100);
+#endif
 }
 
 static void
@@ -327,13 +331,13 @@ _e_test_internal(E_Container *con)
    e_dialog_title_set(dia, "A Test Dialog");
    
    o = e_icon_add(dia->win->evas);
-//   e_icon_file_set(o, "/home/raster/t.png");
-   evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_test_click, NULL);
+   e_icon_file_set(o, "/home/raster/t.png");
    evas_object_resize(o, 1024, 768);
    evas_object_focus_set(o, 1);
    evas_object_show(o);
       
    o2 = e_scrollframe_add(dia->win->evas);
+   evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_test_click, o2);
 //   e_scrollframe_custom_theme_set(o2, "base/theme/widgets", "widgets/scrollframe");
    evas_object_resize(o2, 200, 300);
    evas_object_show(o2);