/// <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();
        }