/// <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; } }
public StandOutWindow.StandOutLayoutParams GetLayoutParams() { StandOutWindow.StandOutLayoutParams @params = (StandOutWindow.StandOutLayoutParams)base.LayoutParameters; if (@params == null) { @params = originalParams; } return(@params); }
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(); } }
//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; }
public Editor(Window outerInstance) { this.outerInstance = outerInstance; mParams = outerInstance.GetLayoutParams(); anchorX = anchorY = 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); }