X Tutup
Skip to content

Commit cbe7962

Browse files
committed
sVB 3.5. Meet Sahla, a programmimg language built with sVB!
1 parent 3894780 commit cbe7962

File tree

149 files changed

+7233
-1697
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

149 files changed

+7233
-1697
lines changed

DiagramHelper/Designer.vb

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
Imports System.Collections.ObjectModel
22
Imports System.ComponentModel
33
Imports System.IO
4+
Imports System.Windows.Controls.Primitives
45
Imports System.Windows.Interop
56
Imports System.Windows.Markup
67
Imports System.Xml
@@ -338,6 +339,7 @@ Public Class Designer
338339
m2.Items.Clear()
339340

340341
If m IsNot Nothing Then
342+
wnd.RtlToggleButton.IsChecked = (m.FlowDirection = FlowDirection.RightToLeft)
341343
For Each item In m.Items
342344
m2.Items.Add(DiagramHelper.Helper.Clone(item))
343345
Next
@@ -608,7 +610,7 @@ Public Class Designer
608610

609611
Dim v = diagram.GetValue(DiagramPanel.IsDiagramEnabledProperty)
610612
If diagram2.IsEnabled <> v Then diagram2.IsEnabled = v
611-
Dim v2 = If(diagram.GetValue(DiagramPanel.IsdiagramVisibleProperty), Visibility.Visible, Visibility.Hidden)
613+
Dim v2 = If(diagram.GetValue(DiagramPanel.IsDiagramVisibleProperty), Visibility.Visible, Visibility.Hidden)
612614
If diagram2.Visibility <> v2 Then diagram2.Visibility = v2
613615
If diagram2.MaxWidth <> pnl.MaxWidth Then diagram2.MaxWidth = pnl.MaxWidth
614616
If diagram2.MaxHeight <> pnl.MaxHeight Then diagram2.MaxHeight = pnl.MaxHeight
@@ -921,7 +923,6 @@ Public Class Designer
921923

922924
diagram.ClearValue(ToolTipProperty)
923925

924-
925926
Dim OldState = New CollectionState(AddressOf AfterRestoreAction, Me.Items, diagram)
926927
AddHandler OldState.BeforeRemoveItem, AddressOf UndoRedo_BeforeRemoveItem
927928
AddHandler OldState.AfterInsertItem, AddressOf UndoRedo_AfterInsertItem
@@ -1382,8 +1383,8 @@ Public Class Designer
13821383
If dlg.ShowDialog() = True Then
13831384
SaveSetting("SmallVisualBasic", "Files", "Open", IO.Path.GetDirectoryName(dlg.FileName))
13841385
If IO.Path.GetExtension(dlg.FileName).ToLower() = ".xaml" Then
1385-
If Not CurrentPage.IsDirty AndAlso
1386-
CurrentPage.IsNew AndAlso Pages.Count = 1 Then
1386+
If CurrentPage IsNot Nothing AndAlso Not CurrentPage.IsDirty AndAlso
1387+
CurrentPage.IsNew AndAlso Pages.Count = 1 Then
13871388
ClosePage(False, True)
13881389
End If
13891390

@@ -1940,7 +1941,9 @@ Public Class Designer
19401941
Dim menu = CType(e.NewValue, Menu)
19411942
If menu Is Nothing Then Return
19421943

1944+
CurrentPage.MenuBar.FlowDirection = menu.FlowDirection
19431945
CurrentPage.MenuNames = New List(Of String)
1946+
19441947
For Each item In menu.Items
19451948
Dim m = CType(Helper.Clone(item), Control)
19461949
menuItems.Add(m)
@@ -1959,7 +1962,6 @@ Public Class Designer
19591962
End Sub
19601963

19611964
Private Shared Sub menuItemClicked(sender As Object, e As MouseButtonEventArgs)
1962-
19631965
If e.ClickCount > 1 OrElse TryCast(sender, ItemsControl)?.Items.Count = 0 Then
19641966
dontShowMenuDesigner = True
19651967
e.Handled = True

DiagramHelper/DiagramPanel.xaml.vb

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,18 +262,24 @@ Public Class DiagramPanel
262262
Case Key.F2 ' Rename
263263
DiagramObj.BeginEdit(True)
264264
e.Handled = True
265+
265266
Case Key.F9
266267
Commands.ChangeBackground(Diagram)
267268
ApplyLastChangeToSelected()
268269
e.Handled = True
270+
269271
Case Key.F3
270272
Dim B = Commands.ChangeBorderBrush(Diagram)
271-
If B IsNot Nothing Then ApplyLastChangeToSelected()
273+
If B IsNot Nothing Then
274+
ApplyLastChangeToSelected()
275+
End If
272276
e.Handled = True
277+
273278
Case Key.F1
274279
Commands.ApplyLastChangeTo(Diagram)
275280
ApplyLastChangeToSelected()
276281
e.Handled = True
282+
277283
Case Key.F6
278284
If Keyboard.Modifiers = ModifierKeys.Shift Then
279285
Commands.IncreaseBorderThickness(Diagram, -0.1)
@@ -283,12 +289,15 @@ Public Class DiagramPanel
283289

284290
ApplyLastChangeToSelected()
285291
e.Handled = True
292+
286293
Case Key.F7
287294
Commands.ChangeBrush(Diagram, Control.ForegroundProperty)
288295
ApplyLastChangeToSelected()
296+
289297
Case Key.F11
290298
Commands.IncreaseRotationAngle(Diagram, -45)
291299
ApplyLastChangeToSelected()
300+
292301
Case Key.F12
293302
Commands.IncreaseRotationAngle(Diagram, 45)
294303
ApplyLastChangeToSelected()
@@ -297,45 +306,55 @@ Public Class DiagramPanel
297306
Commands.Skew(Diagram)
298307
ApplyLastChangeToSelected()
299308
End If
309+
300310
Case Key.F
301311
If Keyboard.Modifiers = ModifierKeys.Control Then
302312
Commands.ChangeFont(Diagram)
303313
ApplyLastChangeToSelected()
304314
End If
315+
305316
Case Key.Oem4
306317
If Keyboard.Modifiers = ModifierKeys.Control Then
307318
Commands.IncreaseFontSize(Diagram, -1)
308319
ApplyLastChangeToSelected()
309320
End If
321+
310322
Case Key.Oem6
311323
If Keyboard.Modifiers = ModifierKeys.Control Then
312324
Commands.IncreaseFontSize(Diagram, +1)
313325
ApplyLastChangeToSelected()
314326
End If
327+
315328
Case Key.B
316329
If Keyboard.Modifiers = ModifierKeys.Control Then
317330
MenuItem_SubmenuOpened(Nothing, Nothing)
318331
BoldMenuItem.IsChecked = Not BoldMenuItem.IsChecked
319332
End If
333+
320334
Case Key.I
321335
If Keyboard.Modifiers = ModifierKeys.Control Then
322336
MenuItem_SubmenuOpened(Nothing, Nothing)
323337
ItalicMenuItem.IsChecked = Not ItalicMenuItem.IsChecked
324338
End If
339+
325340
Case Key.U
326341
If Keyboard.Modifiers = ModifierKeys.Control Then
327342
MenuItem_SubmenuOpened(Nothing, Nothing)
328343
UnderlineMenuItem.IsChecked = Not UnderlineMenuItem.IsChecked
329344
End If
345+
330346
Case Key.G
331347
If Keyboard.Modifiers = ModifierKeys.Control Then
332348
GroupMenuItem.IsChecked = Not GroupMenuItem.IsChecked
333349
End If
350+
334351
Case Key.Enter
335352
DiagramObj.BeginEdit()
336353
e.Handled = True
354+
337355
Case Key.Delete
338356
Dsn.RemoveSelectedItems()
357+
339358
Case Key.Tab
340359
If Keyboard.Modifiers = ModifierKeys.Shift Then
341360
Dim I = Dsn.Items.IndexOf(Diagram) - 1
@@ -360,29 +379,35 @@ Public Class DiagramPanel
360379
End If
361380
End If
362381
e.Handled = True
382+
363383
Case Key.Up
364384
DiagramObj.MoveDiagram(0, -offset, True)
365385
e.Handled = True
386+
366387
Case Key.PageUp
367388
If Keyboard.Modifiers = ModifierKeys.Control Then
368389
DiagramObj.MoveDiagram(-Scv.ViewportWidth, 0, True)
369390
Else
370391
DiagramObj.MoveDiagram(0, -Scv.ViewportHeight, True)
371392
End If
372393
e.Handled = True
394+
373395
Case Key.Left
374396
DiagramObj.MoveDiagram(-offset, 0, True)
375397
e.Handled = True
398+
376399
Case Key.Down
377400
DiagramObj.MoveDiagram(0, offset, True)
378401
e.Handled = True
402+
379403
Case Key.PageDown
380404
If Keyboard.Modifiers = ModifierKeys.Control Then
381405
DiagramObj.MoveDiagram(Scv.ViewportWidth, 0, True)
382406
Else
383407
DiagramObj.MoveDiagram(0, Scv.ViewportHeight, True)
384408
End If
385409
e.Handled = True
410+
386411
Case Key.Right
387412
DiagramObj.MoveDiagram(offset, 0, True)
388413
e.Handled = True
@@ -430,7 +455,9 @@ Public Class DiagramPanel
430455

431456
Private Sub DiagramBorderBrushMenuItem_Click(sender As Object, e As RoutedEventArgs)
432457
Dim B = Commands.ChangeBorderBrush(Diagram)
433-
If B IsNot Nothing Then ApplyLastChangeToSelected()
458+
If B IsNot Nothing Then
459+
ApplyLastChangeToSelected()
460+
End If
434461
End Sub
435462

436463
Private Sub IicreaseBorderThicknessMenuItem_Click(sender As Object, e As RoutedEventArgs)

DiagramHelper/Helper Classes/Helper.vb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,21 @@ Public Class Helper
6565
Loop
6666
End Function
6767

68+
Public Shared Function FindVisualChild(Of T As DependencyObject)(ByVal parent As DependencyObject) As T
69+
For i As Integer = 0 To VisualTreeHelper.GetChildrenCount(parent) - 1
70+
Dim child = VisualTreeHelper.GetChild(parent, i)
71+
If child IsNot Nothing AndAlso TypeOf child Is T Then
72+
Return CType(child, T)
73+
End If
74+
75+
Dim childOfChild = FindVisualChild(Of T)(child)
76+
If childOfChild IsNot Nothing Then
77+
Return childOfChild
78+
End If
79+
Next
80+
Return Nothing
81+
End Function
82+
6883
Shared Function GetListBoxItem(element As DependencyObject) As ListBoxItem
6984
If element Is Nothing Then Return Nothing
7085
Dim Parent = VisualTreeHelper.GetParent(element)

DiagramHelper/Resources/DesignerDecorator.xaml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,21 +81,21 @@
8181
Height="5"/>
8282
<s:DsnResizeThumb Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Bottom" ResizeAngle="-45"
8383
Width="5" Height="5"/>
84-
<Path Grid.Row="1" Stroke="Red" Opacity="0.5"
84+
<Path Grid.Row="1" Stroke="Red" Opacity="0.5"
8585
StrokeThickness="1" Visibility="{Binding DsnResizeThumb.MeasurementsVisibilty}"
8686
Width="10" HorizontalAlignment="Right"
8787
Margin="0,-2,-25,-2" Stretch="Fill"
8888
Data="M5,0 5,100 M 0,0 10,0 M 0,100 10,100"/>
89-
<TextBlock Grid.Row="1" Text="{Binding PageHeight, Converter={StaticResource CmConverter}}"
89+
<TextBlock Grid.Row="1" Text="{Binding PageHeight, Converter={StaticResource CmConverter}}"
9090
Background="White" Visibility="{Binding DsnResizeThumb.MeasurementsVisibilty}"
9191
Foreground="Red" Padding="3,0,3,0" Margin="0,0,-38,0"
9292
HorizontalAlignment="Right" VerticalAlignment="Center" />
93-
<Path Grid.Row="1" Stroke="Red" Opacity="0.5"
93+
<Path Grid.Row="1" Stroke="Red" Opacity="0.5"
9494
StrokeThickness="1" Visibility="{Binding DsnResizeThumb.MeasurementsVisibilty}"
9595
Height="10" VerticalAlignment="Bottom"
9696
Margin="-2,0,-2,-25" Stretch="Fill"
9797
Data="M0,0 0,10 M 0,5 100,5 M 100,0 100,10"/>
98-
<TextBlock Grid.Row="1" Text="{Binding PageWidth, Converter={StaticResource CmConverter}}"
98+
<TextBlock Grid.Row="1" Text="{Binding PageWidth, Converter={StaticResource CmConverter}}"
9999
Background="White" Visibility="{Binding DsnResizeThumb.MeasurementsVisibilty}"
100100
Padding="3,0,3,0" Margin="0,0,0,-32"
101101
Foreground="Red"
@@ -153,7 +153,6 @@
153153
</ItemsPanelTemplate>
154154
</Setter.Value>
155155
</Setter>
156-
157156
</Style>
158157

159158
<Style x:Key="listBoxItemStyle" TargetType="ListBoxItem" >

DiagramHelper/WndMenuDesigner.xaml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@
1111
<DockPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
1212
<Menu x:Name="MainMenu" DockPanel.Dock="Top"/>
1313
<StackPanel Orientation="Vertical" DockPanel.Dock="Bottom" VerticalAlignment="Bottom">
14+
<ToggleButton x:Name="RtlToggleButton" Padding="10,5"
15+
HorizontalAlignment="Center" Background="Gold"
16+
Checked="RtlToggleButton_Checked"
17+
Unchecked="RtlToggleButton_Unchecked">Right To Left</ToggleButton>
18+
1419
<Border Margin="20" Background="LightCyan" BorderThickness="1" BorderBrush="Black">
1520
<TextBlock x:Name="TbInfo" Margin="10" Foreground="Brown" >
1621
<Bold>Notes:</Bold><LineBreak/>
@@ -38,15 +43,15 @@
3843
<RowDefinition/>
3944
</Grid.RowDefinitions>
4045

41-
<TextBlock Margin="15,0,0,0">Name:</TextBlock>
46+
<TextBlock Margin="15,5,0,5">Name:</TextBlock>
4247
<TextBox x:Name="TxtName" Grid.Column="1" Margin="5,5,15,5"
4348
PreviewKeyDown="TxtName_PreviewKeyDown"
4449
LostFocus="TxtName_LostFocus"
4550
GotFocus="TxtName_GotFocus"
4651
TextChanged="TxtName_TextChanged"
4752
PreviewMouseLeftButtonUp="Controls_GotFocus"/>
4853

49-
<TextBlock Grid.Column="2" Margin="5,0,0,0">Text:</TextBlock>
54+
<TextBlock Grid.Column="2" Margin="5,5,0,5">Text:</TextBlock>
5055
<TextBox x:Name="TxtText" Grid.Column="3" Margin="5,5,15,5"
5156
PreviewKeyDown="TxtText_PreviewKeyDown"
5257
LostFocus="TxtText_LostFocus"
@@ -73,7 +78,7 @@
7378
</StackPanel>
7479
</GroupBox>
7580

76-
<GroupBox x:Name="GrpCheck" Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" Margin="15,5" Header="Check State: " BorderBrush="Black" BorderThickness="1" HorizontalAlignment="Left">
81+
<GroupBox x:Name="GrpCheck" Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" Margin="5,5" Header="Check State: " BorderBrush="Black" BorderThickness="1" HorizontalAlignment="Left">
7782
<StackPanel Orientation="Horizontal" >
7883
<CheckBox x:Name="ChkCheckable" Margin="25, 0, 0, 0" VerticalAlignment="Center"
7984
Checked="ChkCheckable_Checked" Unchecked="ChkCheckable_Checked"

DiagramHelper/WndMenuDesigner.xaml.vb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -696,4 +696,11 @@
696696

697697
If suggestedName <> "" Then TxtText.Text = suggestedName
698698
End Sub
699+
Private Sub RtlToggleButton_Checked(sender As Object, e As RoutedEventArgs)
700+
MainMenu.FlowDirection = FlowDirection.RightToLeft
701+
End Sub
702+
703+
Private Sub RtlToggleButton_Unchecked(sender As Object, e As RoutedEventArgs)
704+
MainMenu.FlowDirection = FlowDirection.LeftToRight
705+
End Sub
699706
End Class

0 commit comments

Comments
 (0)
X Tutup