Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Dorota Czaplejewicz
squeekboard
Commits
1c4d027a
Commit
1c4d027a
authored
Dec 07, 2019
by
Dorota Czaplejewicz
Browse files
cleanup: Remove references to squeek_view
parent
51a77c41
Changes
5
Hide whitespace changes
Inline
Side-by-side
eek/eek-keyboard.c
View file @
1c4d027a
...
...
@@ -57,8 +57,3 @@ LevelKeyboard *level_keyboard_new(EekboardContextService *manager, struct squeek
keyboard
->
manager
=
manager
;
return
keyboard
;
}
struct
squeek_view
*
level_keyboard_current
(
LevelKeyboard
*
keyboard
)
{
return
squeek_layout_get_current_view
(
keyboard
->
layout
);
}
eek/eek-keyboard.h
View file @
1c4d027a
...
...
@@ -49,7 +49,6 @@ typedef struct _LevelKeyboard LevelKeyboard;
gchar
*
eek_keyboard_get_keymap
(
LevelKeyboard
*
keyboard
);
struct
squeek_view
*
level_keyboard_current
(
LevelKeyboard
*
keyboard
);
LevelKeyboard
*
level_keyboard_new
(
EekboardContextService
*
manager
,
struct
squeek_layout
*
layout
);
void
level_keyboard_deinit
(
LevelKeyboard
*
self
);
void
level_keyboard_free
(
LevelKeyboard
*
self
);
...
...
eek/eek-renderer.c
View file @
1c4d027a
...
...
@@ -42,14 +42,12 @@ typedef struct _EekRendererPrivate
GtkStyleContext
*
view_context
;
// owned
GtkStyleContext
*
button_context
;
// TODO: maybe move a copy to each button
gdouble
border_width
;
gdouble
border_width
;
// FIXME: border of what?
gdouble
allocation_width
;
gdouble
allocation_height
;
gdouble
scale
;
gint
scale_factor
;
/* the outputs scale factor */
gint
origin_x
;
gint
origin_y
;
struct
transformation
widget_to_layout
;
PangoFontDescription
*
font
;
// owned reference
...
...
@@ -65,14 +63,6 @@ void eek_render_button (EekRenderer *self,
cairo_t
*
cr
,
const
struct
squeek_button
*
button
,
gboolean
pressed
,
gboolean
locked
);
struct
_CreateKeyboardSurfaceCallbackData
{
cairo_t
*
cr
;
EekRenderer
*
renderer
;
struct
squeek_view
*
view
;
struct
squeek_row
*
row
;
};
typedef
struct
_CreateKeyboardSurfaceCallbackData
CreateKeyboardSurfaceCallbackData
;
static
void
render_outline
(
cairo_t
*
cr
,
GtkStyleContext
*
ctx
,
...
...
@@ -271,8 +261,8 @@ eek_renderer_render_keyboard (EekRenderer *self,
priv
->
allocation_width
,
priv
->
allocation_height
);
cairo_save
(
cr
);
cairo_translate
(
cr
,
priv
->
origin_x
,
priv
->
origin_y
);
cairo_scale
(
cr
,
priv
->
scale
,
priv
->
scale
);
cairo_translate
(
cr
,
priv
->
widget_to_layout
.
origin_x
,
priv
->
widget_to_layout
.
origin_y
);
cairo_scale
(
cr
,
priv
->
widget_to_layout
.
scale
,
priv
->
widget_to_layout
.
scale
);
squeek_draw_layout_base_view
(
priv
->
keyboard
->
layout
,
self
,
cr
);
squeek_layout_draw_all_changed
(
priv
->
keyboard
->
layout
,
self
,
cr
);
...
...
@@ -403,7 +393,6 @@ eek_renderer_init (EekRenderer *self)
priv
->
border_width
=
1
.
0
;
priv
->
allocation_width
=
0
.
0
;
priv
->
allocation_height
=
0
.
0
;
priv
->
scale
=
1
.
0
;
priv
->
scale_factor
=
1
;
priv
->
font
=
NULL
;
...
...
@@ -461,8 +450,6 @@ eek_renderer_set_allocation_size (EekRenderer *renderer,
gdouble
width
,
gdouble
height
)
{
gdouble
scale
;
g_return_if_fail
(
EEK_IS_RENDERER
(
renderer
));
g_return_if_fail
(
width
>
0
.
0
&&
height
>
0
.
0
);
...
...
@@ -471,19 +458,9 @@ eek_renderer_set_allocation_size (EekRenderer *renderer,
priv
->
allocation_width
=
width
;
priv
->
allocation_height
=
height
;
/* Calculate a scale factor to use when rendering the keyboard into the
available space. */
EekBounds
bounds
=
squeek_view_get_bounds
(
level_keyboard_current
(
priv
->
keyboard
));
gdouble
w
=
(
bounds
.
x
*
2
)
+
bounds
.
width
;
gdouble
h
=
(
bounds
.
y
*
2
)
+
bounds
.
height
;
scale
=
MIN
(
width
/
w
,
height
/
h
);
priv
->
scale
=
scale
;
/* Set the rendering offset in widget coordinates to center the keyboard */
priv
->
origin_x
=
(
gint
)
floor
((
width
-
(
scale
*
w
))
/
2
);
priv
->
origin_y
=
(
gint
)
floor
((
height
-
(
scale
*
h
))
/
2
);
priv
->
widget_to_layout
=
squeek_layout_calculate_transformation
(
priv
->
keyboard
->
layout
,
priv
->
allocation_width
,
priv
->
allocation_height
);
// This is where size-dependent surfaces would be released
}
...
...
@@ -574,10 +551,5 @@ eek_renderer_get_transformation (EekRenderer *renderer) {
g_return_val_if_fail
(
EEK_IS_RENDERER
(
renderer
),
failed
);
EekRendererPrivate
*
priv
=
eek_renderer_get_instance_private
(
renderer
);
struct
transformation
ret
=
{
.
origin_x
=
priv
->
origin_x
,
.
origin_y
=
priv
->
origin_y
,
.
scale
=
priv
->
scale
,
};
return
ret
;
return
priv
->
widget_to_layout
;
}
src/layout.h
View file @
1c4d027a
...
...
@@ -14,13 +14,8 @@ enum squeek_arrangement_kind {
ARRANGEMENT_KIND_WIDE
=
1
,
};
struct
squeek_view
;
struct
squeek_layout
;
int32_t
squeek_row_get_angle
(
const
struct
squeek_row
*
);
EekBounds
squeek_row_get_bounds
(
const
struct
squeek_row
*
);
EekBounds
squeek_button_get_bounds
(
const
struct
squeek_button
*
);
const
char
*
squeek_button_get_label
(
const
struct
squeek_button
*
);
const
char
*
squeek_button_get_icon_name
(
const
struct
squeek_button
*
);
...
...
@@ -29,12 +24,12 @@ const char *squeek_button_get_outline_name(const struct squeek_button*);
void
squeek_button_print
(
const
struct
squeek_button
*
button
);
EekBounds
squeek_view_get_bounds
(
const
struct
squeek_view
*
);
struct
transformation
squeek_layout_calculate_transformation
(
const
struct
squeek_layout
*
layout
,
double
allocation_width
,
double
allocation_size
);
void
squeek_layout_place_contents
(
struct
squeek_layout
*
);
struct
squeek_view
*
squeek_layout_get_current_view
(
struct
squeek_layout
*
);
struct
squeek_layout
*
squeek_load_layout
(
const
char
*
name
,
uint32_t
type
);
const
char
*
squeek_layout_get_keymap
(
const
struct
squeek_layout
*
);
...
...
src/layout.rs
View file @
1c4d027a
...
...
@@ -129,29 +129,6 @@ pub mod c {
// The following defined in Rust. TODO: wrap naked pointers to Rust data inside RefCells to prevent multiple writers
#[no_mangle]
pub
extern
"C"
fn
squeek_view_get_bounds
(
view
:
*
const
::
layout
::
View
)
->
Bounds
{
unsafe
{
&*
view
}
.bounds
.clone
()
}
#[no_mangle]
pub
extern
"C"
fn
squeek_row_get_angle
(
row
:
*
const
::
layout
::
Row
)
->
i32
{
let
row
=
unsafe
{
&*
row
};
row
.angle
}
#[no_mangle]
pub
extern
"C"
fn
squeek_row_get_bounds
(
row
:
*
const
::
layout
::
Row
)
->
Bounds
{
let
row
=
unsafe
{
&*
row
};
match
&
row
.bounds
{
Some
(
bounds
)
=>
bounds
.clone
(),
None
=>
panic!
(
"Row doesn't have any bounds yet"
),
}
}
#[no_mangle]
pub
extern
"C"
fn
squeek_button_get_bounds
(
button
:
*
const
::
layout
::
Button
)
->
Bounds
{
...
...
@@ -207,16 +184,26 @@ pub mod c {
println!
(
"{:?}"
,
button
);
}
/// Positions the layout within the available space
#[no_mangle]
pub
extern
"C"
fn
squeek_layout_get_current_view
(
layout
:
*
const
Layout
)
->
*
const
View
{
fn
squeek_layout_calculate_transformation
(
layout
:
*
const
Layout
,
allocation_width
:
f64
,
allocation_height
:
f64
,
)
->
Transformation
{
let
layout
=
unsafe
{
&*
layout
};
let
view_name
=
layout
.current_view
.clone
();
layout
.views
.get
(
&
view_name
)
.expect
(
"Current view doesn't exist"
)
.as_ref
()
as
*
const
View
let
bounds
=
&
layout
.get_current_view
()
.bounds
;
let
h_scale
=
allocation_width
/
bounds
.width
;
let
v_scale
=
allocation_height
/
bounds
.height
;
let
scale
=
if
h_scale
>
v_scale
{
h_scale
}
else
{
v_scale
};
Transformation
{
origin_x
:
allocation_width
-
(
scale
*
bounds
.width
)
/
2.0
,
origin_y
:
allocation_height
-
(
scale
*
bounds
.height
)
/
2.0
,
scale
:
scale
,
}
}
#[no_mangle]
pub
extern
"C"
fn
squeek_layout_get_keymap
(
layout
:
*
const
Layout
)
->
*
const
c_char
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment