Пример #1
0
        /// <summary>
        /// 更新编辑器
        /// </summary>
        /// <param name="parent">控件</param>
        private void updateScintilla()
        {
            FCNative native = m_parentDiv.Native;

            if (native != null)
            {
                if (m_parentDiv.isPaintVisible(m_parentDiv))
                {
                    ShowWindow(Handle, SW_SHOWNOACTIVATE);
                    float     scaleFactorX = 1, scaleFactorY = 1;
                    FCSize    scaleSize = native.ScaleSize;
                    WinHostEx winHost   = native.Host as WinHostEx;
                    Control   control   = Control.FromHandle(winHost.HWnd);
                    FCSize    size      = new FCSize(control.ClientSize.Width, control.ClientSize.Height);
                    if (size.cx > 0 & size.cy > 0)
                    {
                        scaleFactorX = (float)scaleSize.cx / size.cx;
                        scaleFactorY = (float)scaleSize.cy / size.cy;
                    }
                    int x  = (int)(native.clientX(m_parentDiv) / scaleFactorX);
                    int y  = (int)(native.clientY(m_parentDiv) / scaleFactorY);
                    int cx = (int)(m_parentDiv.Width / scaleFactorX);
                    int cy = (int)(m_parentDiv.Height / scaleFactorY);
                    MoveWindow(Handle, x, y, cx, cy, true);
                }
                else
                {
                    ShowWindow(Handle, SW_HIDE);
                }
            }
        }
Пример #2
0
        /// <summary>
        /// 获取编辑页偏移
        /// </summary>
        /// <returns>坐标</returns>
        public FCPoint getDesignerOffset()
        {
            FCNative native  = Native;
            int      clientX = native.clientX(m_designerTabPage);
            int      clientY = native.clientY(m_designerTabPage);

            clientX -= (m_designerTabPage.HScrollBar != null ? m_designerTabPage.HScrollBar.Pos : 0);
            clientY -= (m_designerTabPage.VScrollBar != null ? m_designerTabPage.VScrollBar.Pos : 0);
            return(new FCPoint(clientX, clientY));
        }
Пример #3
0
        /// <summary>
        /// 显示右键菜单
        /// </summary>
        /// <param name="var">变量</param>
        /// <returns>状态</returns>
        private double SHOWRIGHTMENU(CVariable var)
        {
            DesignerScript designerScript = m_xml.Script as DesignerScript;
            FCNative       native         = m_xml.Native;
            FCView         control        = m_xml.findControl(designerScript.getSender());
            int            clientX        = native.clientX(control);
            int            clientY        = native.clientY(control);
            FCMenu         menu           = m_xml.getMenu(m_indicator.getText(var.m_parameters[0]));

            menu.Location = new FCPoint(clientX, clientY + control.Height);
            menu.Visible  = true;
            menu.Focused  = true;
            menu.bringToFront();
            native.invalidate();
            return(0);
        }
Пример #4
0
        /// <summary>
        /// 是否正在调整尺寸
        /// </summary>
        /// <param name="mp">坐标</param>
        /// <returns>正在调整尺寸</returns>
        public bool isResizing(FCPoint mp)
        {
            FCNative native = Native;
            int      clientX = native.clientX(this);
            int      clientY = native.clientY(this);
            int      width = Width, height = Height;

            if (mp.x >= clientX && mp.x <= clientX + width && mp.y >= clientY && mp.y <= clientY + height)
            {
                mp.x -= clientX;
                mp.y -= clientY;
                if (getResizePoint(TouchPoint) != -1)
                {
                    return(true);
                }
            }
            return(false);
        }
Пример #5
0
        /// <summary>
        /// 菜单触摸移动方法
        /// </summary>
        /// <param name="item">菜单项</param>
        /// <param name="touchInfo">触摸信息</param>
        public virtual void onMenuItemTouchMove(FCMenuItem item, FCTouchInfo touchInfo)
        {
            FCNative native = Native;
            ArrayList <FCMenuItem> items      = null;
            FCMenuItem             parentItem = item.ParentItem;

            if (parentItem != null)
            {
                items = parentItem.getItems();
            }
            else
            {
                items = m_items;
            }
            //关闭其他表格
            bool close = closeMenus(items);

            if (item.getItems().size() > 0)
            {
                FCMenu dropDownMenu = item.DropDownMenu;
                //获取位置和大小
                if (dropDownMenu != null)
                {
                    dropDownMenu.Native = native;
                    FCLayoutStyle layoutStyle = LayoutStyle;
                    FCPoint       location    = new FCPoint(native.clientX(item) + item.Width, native.clientY(item));
                    if (layoutStyle == FCLayoutStyle.LeftToRight || layoutStyle == FCLayoutStyle.RightToLeft)
                    {
                        location.x = native.clientX(item);
                        location.y = native.clientY(item) + item.Height;
                    }
                    //设置弹出位置
                    dropDownMenu.Opacity  = Opacity;
                    dropDownMenu.Location = location;
                    dropDownMenu.bringToFront();
                    dropDownMenu.focus();
                    dropDownMenu.show();
                    adjust(dropDownMenu);
                }
            }
            native.invalidate();
        }