/// <summary> /// Closes active window, removes it from list and activates another window /// </summary> public override void DevCloseWindow() { if (this.activeID.I == 0) { return; } HTuple htuple1 = HDevOpMultiWindowImpl.TupleFind2(this.fixedIDs, this.activeID); if (htuple1.Length > 0) { this.fixedUsed[htuple1[0].I] = (HTupleElements)0; } else { HOperatorSet.CloseWindow(this.activeID); } HTuple htuple2 = HDevOpMultiWindowImpl.TupleFind2(this.windowIDs, this.activeID); if (htuple2.Length > 0) { this.windowIDs = this.windowIDs.TupleRemove((HTuple)htuple2[0]); } if (this.windowIDs.Length > 0) { this.activeID = (HTuple)this.windowIDs[this.windowIDs.Length - 1]; } else { this.activeID = (HTuple)0; } }
/// <summary> /// No action for fixed windows, adapt size otherwise /// </summary> public override void DevSetWindowExtents(HTuple row, HTuple column, HTuple width, HTuple height) { if (HDevOpMultiWindowImpl.TupleFind2(this.fixedIDs, this.activeID).Length != 0) { return; } HOperatorSet.SetWindowExtents(this.activeID, row, column, width, height); }
/// <summary> /// Opens a window, appends window ID and sets active window /// </summary> public override void DevOpenWindow(HTuple row, HTuple column, HTuple width, HTuple height, HTuple background, out HTuple windowID) { HTuple htuple = HDevOpMultiWindowImpl.TupleFind2(this.fixedUsed, (HTuple)0); if (htuple.Length > 0) { this.activeID = (HTuple)this.fixedIDs[htuple[0].I]; this.fixedUsed[htuple[0].I] = (HTupleElements)1; } else { HOperatorSet.SetWindowAttr((HTuple)"background_color", background); HOperatorSet.OpenWindow(row, column, width, height, (HTuple)0, (HTuple)"visible", (HTuple)"", out this.activeID); } this.windowIDs[this.windowIDs.Length] = (HTupleElements)this.activeID; windowID = this.activeID.Clone(); }