Exemplo n.º 1
0
 /// <summary>
 /// Commit the changes to this window. Updates the layout. This Editor
 /// cannot be used after you commit.
 /// </summary>
 public virtual void commit()
 {
     if (mParams != null)
     {
         outerInstance.mContext.updateViewLayout(outerInstance.id, mParams);
         mParams = null;
     }
 }
Exemplo n.º 2
0
 public StandOutWindow.StandOutLayoutParams GetLayoutParams()
 {
     StandOutWindow.StandOutLayoutParams @params = (StandOutWindow.StandOutLayoutParams)base.LayoutParameters;
     if (@params == null)
     {
         @params = originalParams;
     }
     return(@params);
 }
Exemplo n.º 3
0
            public void OnClick(View v)
            {
                StandOutWindow.StandOutLayoutParams @params = outerInstance.GetLayoutParams();
                bool isMaximized = outerInstance.data.GetBoolean(WindowDataKeys.IS_MAXIMIZED);

                if (isMaximized && @params.Width == outerInstance.displayWidth && @params.Height == outerInstance.displayHeight && @params.X == 0 && @params.Y == 0)
                {
                    outerInstance.data.PutBoolean(WindowDataKeys.IS_MAXIMIZED, false);
                    int oldWidth  = outerInstance.data.GetInt(WindowDataKeys.WIDTH_BEFORE_MAXIMIZE, -1);
                    int oldHeight = outerInstance.data.GetInt(WindowDataKeys.HEIGHT_BEFORE_MAXIMIZE, -1);
                    int oldX      = outerInstance.data.GetInt(WindowDataKeys.X_BEFORE_MAXIMIZE, -1);
                    int oldY      = outerInstance.data.GetInt(WindowDataKeys.Y_BEFORE_MAXIMIZE, -1);
                    outerInstance.edit().setSize(oldWidth, oldHeight).setPosition(oldX, oldY).commit();
                }
                else
                {
                    outerInstance.data.PutBoolean(WindowDataKeys.IS_MAXIMIZED, true);
                    outerInstance.data.PutInt(WindowDataKeys.WIDTH_BEFORE_MAXIMIZE, @params.Width);
                    outerInstance.data.PutInt(WindowDataKeys.HEIGHT_BEFORE_MAXIMIZE, @params.Height);
                    outerInstance.data.PutInt(WindowDataKeys.X_BEFORE_MAXIMIZE, @params.X);
                    outerInstance.data.PutInt(WindowDataKeys.Y_BEFORE_MAXIMIZE, @params.Y);
                    outerInstance.edit().setSize(1f, 1f).setPosition(0, 0).commit();
                }
            }
Exemplo n.º 4
0
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not allowed in .NET:
//ORIGINAL LINE: public Window(final wei.mark.standout.StandOutWindow context, final int id)
        public Window(StandOutWindow context, int id) : base(context)
        {
            context.SetTheme(context.ThemeStyle);

            mContext        = context;
            mLayoutInflater = LayoutInflater.From(context);

            this.cls            = context.GetType();
            this.id             = id;
            this.originalParams = context.getParams(id, this);
            this.flags          = context.getFlags(id);
            this.touchInfo      = new TouchInfo();
            touchInfo.ratio     = (float)originalParams.Width / originalParams.Height;
            this.data           = new Bundle();
            DisplayMetrics metrics = mContext.Resources.DisplayMetrics;

            displayWidth  = metrics.WidthPixels;
            displayHeight = (int)(metrics.HeightPixels - 25 * metrics.Density);

            // create the window contents
            View        content;
            FrameLayout body;

            if (Utils.isSet(flags, StandOutFlags.FLAG_DECORATION_SYSTEM))
            {
                // requested system window decorations
                content = SystemDecorations;
                body    = (FrameLayout)content.FindViewById(R.Id.body);
            }
            else
            {
                // did not request decorations. will provide own implementation
                content    = new FrameLayout(context);
                content.Id = R.Id.content;
                body       = (FrameLayout)content;
            }

            AddView(content);

            //TODO
            body.SetOnTouchListener(new OnTouchListenerAnonymousInnerClassHelper(this, context, id));

            // attach the view corresponding to the id from the
            // implementation
            context.CreateAndAttachView(id, body);

            // make sure the implementation attached the view
            if (body.ChildCount == 0)
            {
                throw new Exception("You must attach your view to the given frame in createAndAttachView()");
            }

            // implement StandOut specific workarounds
            if (!Utils.isSet(flags, StandOutFlags.FLAG_FIX_COMPATIBILITY_ALL_DISABLE))
            {
                fixCompatibility(body);
            }
            // implement StandOut specific additional functionality
            if (!Utils.isSet(flags, StandOutFlags.FLAG_ADD_FUNCTIONALITY_ALL_DISABLE))
            {
                addFunctionality(body);
            }

            // attach the existing tag from the frame to the window
            Tag = body.Tag;
        }
Exemplo n.º 5
0
 public Editor(Window outerInstance)
 {
     this.outerInstance = outerInstance;
     mParams            = outerInstance.GetLayoutParams();
     anchorX            = anchorY = 0;
 }
Exemplo n.º 6
0
        /// <summary>
        /// Request or remove the focus from this window.
        /// </summary>
        /// <param name="focus">
        ///            Whether we want to gain or lose focus. </param>
        /// <returns> True if focus changed successfully, false if it failed. </returns>
        public virtual bool onFocus(bool focus)
        {
            if (!Utils.isSet(flags, StandOutFlags.FLAG_WINDOW_FOCUSABLE_DISABLE))
            {
                // window is focusable

                if (focus == focused)
                {
                    // window already focused/unfocused
                    return(false);
                }

                focused = focus;

                // alert callbacks and cancel if instructed
                if (mContext.onFocusChange(id, this, focus))
                {
                    Log.Debug(TAG, "Window " + id + " focus change " + (focus ? "(true)" : "(false)") + " cancelled by implementation.");
                    focused = !focus;
                    return(false);
                }

                if (!Utils.isSet(flags, StandOutFlags.FLAG_WINDOW_FOCUS_INDICATOR_DISABLE))
                {
                    // change visual state
                    View content = FindViewById(R.Id.content);
                    if (focus)
                    {
                        // gaining focus
                        content.SetBackgroundResource(R.Drawable.border_focused);
                    }
                    else
                    {
                        // losing focus
                        if (Utils.isSet(flags, StandOutFlags.FLAG_DECORATION_SYSTEM))
                        {
                            // system decorations
                            content.SetBackgroundResource(R.Drawable.border);
                        }
                        else
                        {
                            // no decorations
                            content.SetBackgroundResource(0);
                        }
                    }
                }

                // set window manager params
                StandOutWindow.StandOutLayoutParams @params = GetLayoutParams();
                @params.FocusFlag = focus;
                mContext.updateViewLayout(id, @params);

                if (focus)
                {
                    mContext.FocusedWindow = this;
                }
                else
                {
                    if (mContext.FocusedWindow == this)
                    {
                        mContext.FocusedWindow = null;
                    }
                }

                return(true);
            }
            return(false);
        }