Summary: - Fixes an off-by-one error in screen_test_scale() which causes the areas and regions to draw one pixel bigger on the right and top side of the window, therefor hiding one line of pixels. - Fixes an off-by-one error in rct_fits() which causes regions to incorrectly hide even though it would fit inside the area. - Correctly set the limits for the screen edge move operator so it will always go up to AREAMINX and headery. - Change screen_find_active_scredge() so it doesn't show the arrows cursor on the screen edges along the window border. The import thing to understand is how integer rects are used in this part of the code. They are constructed as a lower left and top right point and are INCLUSIVE. Meaning that if you have a rect's xmin = 10 and xmax = 30 then the total number of pixels is 21. So to get the size of a rect you have to do xmax - xmin + 1, which is easy to forget and result in off-by-one errors. Reviewed By: brecht Differential Revision: http://developer.blender.org/D41
74 lines
2.5 KiB
C++
74 lines
2.5 KiB
C++
/*
|
|
* ***** BEGIN GPL LICENSE BLOCK *****
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
* The Original Code is Copyright (C) 2008 Blender Foundation.
|
|
* All rights reserved.
|
|
*
|
|
*
|
|
* Contributor(s): Blender Foundation
|
|
*
|
|
* ***** END GPL LICENSE BLOCK *****
|
|
*/
|
|
|
|
/** \file blender/editors/screen/screen_intern.h
|
|
* \ingroup edscr
|
|
*/
|
|
|
|
#ifndef __SCREEN_INTERN_H__
|
|
#define __SCREEN_INTERN_H__
|
|
|
|
/* internal exports only */
|
|
struct wmWindow;
|
|
struct Scene;
|
|
|
|
#define AZONESPOT (0.6f * U.widget_unit)
|
|
|
|
/* area.c */
|
|
void area_copy_data(ScrArea *sa1, ScrArea *sa2, int swap_space);
|
|
void region_toggle_hidden(bContext *C, ARegion *ar, int do_fade);
|
|
|
|
/* screen_edit.c */
|
|
ScrEdge *screen_findedge(bScreen *sc, ScrVert *v1, ScrVert *v2);
|
|
ScrArea *area_split(bScreen *sc, ScrArea *sa, char dir, float fac, int merge);
|
|
int screen_area_join(bContext *C, bScreen *scr, ScrArea *sa1, ScrArea *sa2);
|
|
int area_getorientation(ScrArea *sa, ScrArea *sb);
|
|
void select_connected_scredge(bScreen *sc, ScrEdge *edge);
|
|
|
|
void removenotused_scrverts(bScreen *sc);
|
|
void removedouble_scrverts(bScreen *sc);
|
|
void removedouble_scredges(bScreen *sc);
|
|
void removenotused_scredges(bScreen *sc);
|
|
int scredge_is_horizontal(ScrEdge *se);
|
|
ScrEdge *screen_find_active_scredge(bScreen *sc, int winsizex, int winsizey, int mx, int my);
|
|
|
|
struct AZone *is_in_area_actionzone(ScrArea *sa, const int xy[2]);
|
|
|
|
/* screen_context.c */
|
|
int ed_screen_context(const bContext *C, const char *member, bContextDataResult *result);
|
|
|
|
extern const char *screen_context_dir[]; /* doc access */
|
|
|
|
/* screendump.c */
|
|
void SCREEN_OT_screenshot(struct wmOperatorType *ot);
|
|
void SCREEN_OT_screencast(struct wmOperatorType *ot);
|
|
|
|
/* screen_ops.c */
|
|
void region_blend_start(struct bContext *C, struct ScrArea *sa, struct ARegion *ar);
|
|
|
|
|
|
#endif /* __SCREEN_INTERN_H__ */
|