Home | History | Annotate | Download | only in src

Lines Matching refs:pw

89 #define ForAllPanes(pw, childP) \
90 for ((childP) = (pw)->composite.children; \
91 (childP) < (pw)->composite.children + (pw)->paned.num_panes; \
94 #define ForAllChildren(pw, childP) \
95 for ((childP) = (pw)->composite.children; \
96 (childP) < (pw)->composite.children + (pw)->composite.num_children; \
485 * pw - paned widget to adjust
498 AdjustPanedSize(PanedWidget pw, unsigned int off_size,
502 Dimension old_size = PaneSize((Widget)pw, IsVert(pw));
509 ForAllPanes(pw, childP) {
513 newsize = (Dimension)(newsize + (size + pw->paned.internal_bw));
515 newsize = (Dimension)(newsize - pw->paned.internal_bw);
520 if (IsVert(pw)) {
532 *result_ret = XtMakeGeometryRequest((Widget)pw, &request, &reply);
533 _XawImCallVendorShellExtResize((Widget)pw);
541 *on_size_ret = GetRequestInfo(&request, IsVert(pw));
542 *off_size_ret = GetRequestInfo(&request, !IsVert(pw));
545 *on_size_ret = GetRequestInfo(&reply, IsVert(pw));
546 *off_size_ret = GetRequestInfo(&reply, !IsVert(pw));
553 if (XtMakeGeometryRequest((Widget)pw, &request, &reply) == XtGeometryAlmost)
554 XtMakeGeometryRequest((Widget)pw, &reply, &request);
562 * pw - paned widget
588 ChoosePaneToResize(PanedWidget pw, int paneindex, Direction dir, Bool shrink)
597 _index = pw->paned.num_panes - 1; /* Start the last pane, and work
600 childP = pw->composite.children + _index;
626 if ((childP - pw->composite.children) < 0 ||
627 (childP - pw->composite.children) >= pw->paned.num_panes) {
630 childP = pw->composite.children + _index;
640 * pw - paned widget
650 LoopAndRefigureChildren(PanedWidget pw, int paneindex, Direction dir,
653 int pane_size = (int)PaneSize((Widget)pw, IsVert(pw));
671 GetPaneStack(pw, shrink, &pane, &start_size);
673 pane = ChoosePaneToResize(pw, paneindex, dir, shrink);
679 PushPaneStack(pw, pane);
697 (void)PopPaneStack(pw);
719 * pw - paned widget
734 RefigureLocations(PanedWidget pw, int paneindex, Direction dir)
737 int pane_size = (int)PaneSize((Widget)pw, IsVert(pw));
741 if (pw->paned.num_panes == 0 || !pw->paned.refiguremode)
747 ForAllPanes(pw, childP) {
752 sizeused += (int)pane->size + (int)pw->paned.internal_bw;
754 sizeused -= (int)pw->paned.internal_bw;
757 LoopAndRefigureChildren(pw, paneindex, dir, &sizeused);
764 Pane pane = PaneInfo(*(pw->composite.children + paneindex));
779 ForAllPanes(pw, childP) {
781 loc = (Position)(loc + (PaneInfo(*childP)->size + pw->paned.internal_bw));
790 * pw - paned widget
796 CommitNewLocations(PanedWidget pw)
801 ForAllPanes(pw, childP) {
805 if (IsVert(pw)) {
807 XtResizeWidget(*childP, XtWidth(pw), (Dimension)pane->size, 0);
810 changes.x = XtWidth(pw) - pw->paned.grip_indent -
814 (pw->paned.internal_bw >> 1);
819 XtResizeWidget(*childP, (Dimension)pane->size, (Dimension)XtHeight(pw), 0);
824 (pw->paned.internal_bw >> 1);
825 changes.y = XtHeight(pw) - pw->paned.grip_indent -
844 ClearPaneStack(pw);
852 * pw - paned widget
865 PanedWidget pw = (PanedWidget)w;
867 if (pw->paned.refiguremode && XtIsRealized(w) && pw->paned.num_panes > 0) {
868 RefigureLocations(pw, NO_INDEX, AnyPane);
869 CommitNewLocations(pw);
878 * pw - paned widget
889 _DrawRect(PanedWidget pw, GC gc, int on_loc, int off_loc,
892 if (IsVert(pw))
893 XFillRectangle(XtDisplay((Widget)pw), XtWindow((Widget)pw), gc,
896 XFillRectangle(XtDisplay((Widget)pw), XtWindow((Widget)pw), gc,
905 * pw - paned widget
912 _DrawInternalBorders(PanedWidget pw, GC gc)
922 if (pw->core.background_pixel == pw->paned.internal_bp)
926 off_size = (unsigned int) PaneSize((Widget)pw, !IsVert(pw));
927 on_size = (unsigned int)pw->paned.internal_bw;
929 ForAllPanes(pw, childP) {
930 int on_loc = IsVert(pw) ? XtY(*childP) : XtX(*childP);
933 _DrawRect(pw, gc, on_loc, off_loc, on_size, off_size);
937 #define DrawInternalBorders(pw) \
938 _DrawInternalBorders((pw), (pw)->paned.normgc)
939 #define EraseInternalBorders(pw) \
940 _DrawInternalBorders((pw), (pw)->paned.invgc)
946 * pw - Paned widget
953 _DrawTrackLines(PanedWidget pw, Bool erase)
961 off_size = PaneSize((Widget)pw, !IsVert(pw));
963 ForAllPanes(pw, childP) {
966 on_size = pw->paned.internal_bw;
969 _DrawRect(pw, pw->paned.flipgc,
975 _DrawRect(pw, pw->paned.flipgc,
983 #define DrawTrackLines(pw) _DrawTrackLines((pw), False);
984 #define EraseTrackLines(pw) _DrawTrackLines((pw), True);
990 * pw - the paned widget
1000 GetEventLocation(PanedWidget pw, XEvent *event)
1020 x = pw->paned.start_loc;
1021 y = pw->paned.start_loc;
1024 if (IsVert(pw))
1035 * pw - paned widget
1043 StartGripAdjustment(PanedWidget pw, Widget grip, Direction dir)
1047 pw->paned.whichadd = pw->paned.whichsub = NULL;
1050 pw->paned.whichadd = pw->composite.children[PaneIndex(grip)];
1052 pw->paned.whichsub = pw->composite.children[PaneIndex(grip) + 1];
1060 if (IsVert(pw)) {
1062 cursor = pw->paned.adjust_upper_cursor;
1064 cursor = pw->paned.adjust_lower_cursor;
1066 if (pw->paned.adjust_this_cursor == None)
1067 cursor = pw->paned.v_adjust_this_cursor;
1069 cursor = pw->paned.adjust_this_cursor;
1074 cursor = pw->paned.adjust_left_cursor;
1076 cursor = pw->paned.adjust_right_cursor;
1078 if (pw->paned.adjust_this_cursor == None)
1079 cursor = pw->paned.h_adjust_this_cursor;
1081 cursor = pw->paned.adjust_this_cursor;
1088 EraseInternalBorders(pw);
1089 ForAllPanes(pw, childP)
1092 EraseTrackLines(pw);
1100 * pw - paned widget
1109 MoveGripAdjustment(PanedWidget pw, Widget grip, Direction dir, int loc)
1113 diff = loc - pw->paned.start_loc;
1115 if (pw->paned.whichadd)
1116 add_size = PaneSize(pw->paned.whichadd, IsVert(pw)) + diff;
1118 if (pw->paned.whichsub)
1119 sub_size = PaneSize(pw->paned.whichsub, IsVert(pw)) - diff;
1128 if (pw->paned.whichadd == NULL)
1131 AssignMax(add_size, (int)PaneInfo(pw->paned.whichadd)->min);
1132 AssignMin(add_size, (int)PaneInfo(pw->paned.whichadd)->max);
1136 if (pw->paned.whichsub == NULL)
1140 AssignMax(sub_size, (int)PaneInfo(pw->paned.whichsub)->min);
1141 AssignMin(sub_size, (int)PaneInfo(pw->paned.whichsub)->max);
1147 PaneInfo(pw->paned.whichadd)->size = add_size;
1149 PaneInfo(pw->paned.whichsub)->size = sub_size;
1150 RefigureLocations(pw, PaneIndex(grip), dir);
1151 DrawTrackLines(pw);
1159 * pw - paned widget
1165 CommitGripAdjustment(PanedWidget pw)
1167 EraseTrackLines(pw);
1168 CommitNewLocations(pw);
1169 DrawInternalBorders(pw);
1174 if (pw->paned.whichadd) {
1175 Pane pane = PaneInfo(pw->paned.whichadd);
1179 if (pw->paned.whichsub) {
1180 Pane pane = PaneInfo(pw->paned.whichsub);
1203 PanedWidget pw = (PanedWidget) XtParent(grip);
1219 loc = GetEventLocation(pw, (XEvent *)call_data->event);
1227 pw->paned.resize_children_to_pref = False;
1228 StartGripAdjustment(pw, grip, (Direction)direction[0]);
1229 pw->paned.start_loc = loc;
1232 MoveGripAdjustment(pw, grip, (Direction)direction[0], loc);
1238 CommitGripAdjustment(pw);
1252 * pw - paned widget
1258 ResortChildren(PanedWidget pw)
1263 ForAllChildren(pw, childP) {
1292 * pw - paned widget
1299 ManageAndUnmanageGrips(PanedWidget pw)
1305 alloc_size = (Cardinal)(sizeof(Widget) * (pw->composite.num_children >> 1));
1309 ForAllChildren(pw, childP)
1342 PanedWidget pw = (PanedWidget)XtParent(child);
1347 XtSetArg(arglist[num_args], XtNtranslations, pw->paned.grip_translations);
1349 if ((cursor = pw->paned.grip_cursor) == None) {
1350 if (IsVert(pw))
1351 cursor = pw->paned.v_grip_cursor;
1353 cursor = pw->paned.h_grip_cursor;
1358 PaneInfo(child)->grip = XtCreateWidget("grip", gripWidgetClass, (Widget)pw,
1375 PanedWidget pw = (PanedWidget)w;
1382 values.foreground = pw->paned.internal_bp;
1384 pw->paned.normgc = XtGetGC(w, valuemask, &values);
1389 values.foreground = pw->core.background_pixel;
1391 pw->paned.invgc = XtGetGC(w, valuemask, &values);
1398 values.plane_mask = pw->paned.internal_bp ^ pw->core.background_pixel;
1401 pw->paned.flipgc = XtGetGC(w, valuemask, &values);
1409 * pw - paned widget
1415 SetChildrenPrefSizes(PanedWidget pw, unsigned int off_size)
1418 Boolean vert = IsVert(pw);
1421 ForAllPanes(pw, childP)
1422 if (pw->paned.resize_children_to_pref || PaneInfo(*childP)->size == 0 ||
1453 * pw - paned widget
1459 ChangeAllGripCursors(PanedWidget pw)
1463 ForAllPanes(pw, childP) {
1466 if ((cursor = pw->paned.grip_cursor) == None) {
1467 if (IsVert(pw))
1468 cursor = pw->paned.v_grip_cursor;
1470 cursor = pw->paned.h_grip_cursor;
1487 * pw - paned widget
1494 PushPaneStack(PanedWidget pw, Pane pane)
1498 stack->next = pw->paned.stack;
1502 pw->paned.stack = stack;
1510 * pw - paned widget
1519 GetPaneStack(PanedWidget pw, Bool shrink, Pane *pane, int *start_size)
1521 if (pw->paned.stack == NULL) {
1526 *pane = pw->paned.stack->pane;
1527 *start_size = pw->paned.stack->start_size;
1538 * pw - paned widget
1546 PopPaneStack(PanedWidget pw)
1548 PaneStack *stack = pw->paned.stack;
1553 pw->paned.stack = stack->next;
1556 if (pw->paned.stack == NULL)
1567 * pw - paned widget
1573 ClearPaneStack(PanedWidget pw)
1575 while(PopPaneStack(pw))
1606 PanedWidget pw = (PanedWidget)XtParent(w);
1610 Boolean vert = IsVert(pw);
1624 if ((XtIsRealized((Widget)pw) && !pane->allow_resize)
1630 old_paned_size = PaneSize((Widget)pw, vert);
1636 AdjustPanedSize(pw, PaneSize((Widget)pw, !vert), &result, &on_size,
1646 XtHeight(pw) = on_size;
1648 XtWidth(pw) = on_size;
1651 RefigureLocations(pw, PaneIndex(w), AnyPane);
1657 XtHeight(pw) = old_paned_size;
1662 XtWidth(pw) = old_paned_size;
1691 RefigureLocations(pw, PaneIndex(w), AnyPane);
1697 AdjustPanedSize(pw, PaneSize((Widget) pw, !vert), NULL, NULL, NULL);
1698 CommitNewLocations(pw); /* layout already refigured */
1709 PanedWidget pw = (PanedWidget)cnew;
1711 GetGCs((Widget)pw);
1713 pw->paned.recursively_called = False;
1714 pw->paned.stack = NULL;
1715 pw->paned.resize_children_to_pref = True;
1716 pw->paned.num_panes = 0;
1722 PanedWidget pw = (PanedWidget)w;
1725 if ((attributes->cursor = pw->paned.cursor) != None)
1734 ForAllPanes(pw, childP) {
1741 pw->paned.resize_children_to_pref = False;
1753 PanedWidget pw = (PanedWidget)w;
1755 XtReleaseGC(w, pw->paned.normgc);
1756 XtReleaseGC(w, pw->paned.invgc);
1757 XtReleaseGC(w, pw->paned.flipgc);
1804 PanedWidget pw = (PanedWidget)w;
1805 Boolean vert = IsVert(pw);
1809 if (pw->paned.recursively_called++)
1816 if ((size = PaneSize((Widget)pw, !vert)) == 0) {
1818 ForAllChildren(pw, childP)
1823 ManageAndUnmanageGrips(pw);
1824 pw->paned.recursively_called = False;
1825 ResortChildren(pw);
1827 pw->paned.num_panes = 0;
1828 ForAllChildren(pw, childP)
1834 PaneInfo(pane->grip)->position = pw->paned.num_panes;
1835 pane->position = pw->paned.num_panes; /* TEMPORARY -CDP 3/89 */
1836 pw->paned.num_panes++;
1847 if (PaneSize((Widget) pw, vert) == 0)
1848 AdjustPanedSize(pw, size, NULL, NULL, NULL);
1850 if (XtIsRealized((Widget)pw))
1851 RefigureLocationsAndCommit((Widget)pw);